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 2015/05/31 16:18:18 UTC

svn commit: r1682738 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/RandomAccessBufferedFileInputStream.java

Author: lehmi
Date: Sun May 31 14:18:18 2015
New Revision: 1682738

URL: http://svn.apache.org/r1682738
Log:
PDFBOX-2301: override read(byte[]) to use buffer, added a loop to readFully so that always all needed bytes are read

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/RandomAccessBufferedFileInputStream.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/RandomAccessBufferedFileInputStream.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/RandomAccessBufferedFileInputStream.java?rev=1682738&r1=1682737&r2=1682738&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/RandomAccessBufferedFileInputStream.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/RandomAccessBufferedFileInputStream.java Sun May 31 14:18:18 2015
@@ -164,6 +164,12 @@ extends InputStream implements RandomAcc
     }
     
     @Override
+    public int read(byte[] b) throws IOException
+    {
+        return read(b, 0, b.length);
+    }
+    
+    @Override
     public int read( byte[] b, int off, int len ) throws IOException
     {
         if ( fileOffset >= fileLength )
@@ -263,7 +269,11 @@ extends InputStream implements RandomAcc
     public byte[] readFully(int length) throws IOException
     {
         byte[] b = new byte[length];
-        read(b);
+        int bytesRead = read(b);
+        while(bytesRead < length)
+        {
+            bytesRead += read(b, bytesRead, length-bytesRead);
+        }
         return b;
     }