You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2020/08/09 17:41:05 UTC
svn commit: r1880720 -
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/SequenceRandomAccessRead.java
Author: lehmi
Date: Sun Aug 9 17:41:05 2020
New Revision: 1880720
URL: http://svn.apache.org/viewvc?rev=1880720&view=rev
Log:
PDFBOX-4836: fix calculation of read bytes
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/SequenceRandomAccessRead.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/SequenceRandomAccessRead.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/SequenceRandomAccessRead.java?rev=1880720&r1=1880719&r2=1880720&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/SequenceRandomAccessRead.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/SequenceRandomAccessRead.java Sun Aug 9 17:41:05 2020
@@ -111,12 +111,13 @@ public class SequenceRandomAccessRead im
public int read(byte[] b, int offset, int length) throws IOException
{
checkClosed();
+ int maxAvailBytes = Math.min(available(), length);
RandomAccessRead randomAccessRead = getCurrentReader();
- int bytesRead = randomAccessRead.read(b, offset, length);
- while (bytesRead < length && available() > 0)
+ int bytesRead = randomAccessRead.read(b, offset, maxAvailBytes);
+ while (bytesRead < maxAvailBytes)
{
randomAccessRead = getCurrentReader();
- bytesRead += randomAccessRead.read(b, offset + bytesRead, length - bytesRead);
+ bytesRead += randomAccessRead.read(b, offset + bytesRead, maxAvailBytes - bytesRead);
}
currentPosition += bytesRead;
return bytesRead;