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;