You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@poi.apache.org by bu...@apache.org on 2007/07/08 16:57:34 UTC

DO NOT REPLY [Bug 42834] New: - RawDataBlock makes incorrect assumption about size of data returned by IOUtils.readFully()

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG�
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=42834>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND�
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=42834

           Summary: RawDataBlock makes incorrect assumption about size of
                    data returned by IOUtils.readFully()
           Product: POI
           Version: 3.0
          Platform: Other
        OS/Version: other
            Status: NEW
          Severity: normal
          Priority: P2
         Component: POIFS
        AssignedTo: dev@poi.apache.org
        ReportedBy: paulk@asert.com.au


RawDataBlock assumes that IOUtils.readFully() returns data in blocks that are
POIFSConstants.BIG_BLOCK_SIZE in size. When reading an Excel file out of a Jar
or from a socket or http client connection with no buffering, this appears not
to be the case. It appears to be an issue with all reads on a slow server (e.g.
crystal reports generating the PDF on a heavily loaded machine or across a slow
network) and an issue for the last read when crystal reports is running locally
on a lightly loaded machine. The fix seems to be to remove the code which checks
if the  size returned is a multiple of POIFSConstants.BIG_BLOCK_SIZE as per the
attached patch. At least that has worked for the latest few versions of crystal
reports.

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@poi.apache.org
For additional commands, e-mail: dev-help@poi.apache.org


DO NOT REPLY [Bug 42834] - RawDataBlock makes incorrect assumption about size of data returned by IOUtils.readFully()

Posted by bu...@apache.org.
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG�
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=42834>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND�
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=42834


nick@torchbox.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED




------- Additional Comments From nick@torchbox.com  2007-12-04 04:37 -------
I'm tempted to say that we ought to throw an error if the last data block is
short, but handle the case of a slow read meaning we don't get all of a data
block in one go. That'll need a little bit more code than the patch offers though

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@poi.apache.org
For additional commands, e-mail: dev-help@poi.apache.org


DO NOT REPLY [Bug 42834] - RawDataBlock makes incorrect assumption about size of data returned by IOUtils.readFully()

Posted by bu...@apache.org.
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG�
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=42834>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND�
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=42834


nick@torchbox.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |WORKSFORME




------- Additional Comments From nick@torchbox.com  2008-01-09 08:35 -------
I've written a test which works with a very slow inputstream. With this, I don't
have any problems reading a whole block, even if done so in lots of tiny little
bits with gaps. I've also tweaked the comments/javadocs/exception text to ensure
they're clear on exactly what will and won't work

You should only get the IOException if your stream EOFs in the middle of reading
a block, which should never be the case for a valid OLE2 document (which is
required to be a multiple of the blocksize)

So, I'm not sure what your problem is, but I think it isn't related to
IOUtils.readFully()

If you're still getting this issue after trying with a svn checkout from trunk,
could you put together a unit test that demonstrates the issue? (My slow reading
unit test couldn't trigger it, so we will need a failing unit test to be able to
replicate the issue, if it's still present)

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@poi.apache.org
For additional commands, e-mail: dev-help@poi.apache.org


DO NOT REPLY [Bug 42834] - RawDataBlock makes incorrect assumption about size of data returned by IOUtils.readFully()

Posted by bu...@apache.org.
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG�
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=42834>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND�
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=42834





------- Additional Comments From paulk@asert.com.au  2007-07-29 20:21 -------
Possibly the same as 28231 which has a similar issue but a slightly different fix.

Related to 13478 which provided a partial but incomplete fix (as far as I can tell).

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@poi.apache.org
For additional commands, e-mail: dev-help@poi.apache.org


DO NOT REPLY [Bug 42834] - RawDataBlock makes incorrect assumption about size of data returned by IOUtils.readFully()

Posted by bu...@apache.org.
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG�
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=42834>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND�
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=42834





------- Additional Comments From paulk@asert.com.au  2007-07-08 07:58 -------
Created an attachment (id=20478)
 --> (http://issues.apache.org/bugzilla/attachment.cgi?id=20478&action=view)
patch


-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@poi.apache.org
For additional commands, e-mail: dev-help@poi.apache.org