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/27 20:20:17 UTC
svn commit: r1682091 - in /pdfbox/trunk/pdfbox/src:
main/java/org/apache/pdfbox/io/RandomAccessBuffer.java
test/java/org/apache/pdfbox/io/TestRandomAccessBuffer.java
Author: lehmi
Date: Wed May 27 18:20:17 2015
New Revision: 1682091
URL: http://svn.apache.org/r1682091
Log:
PDFBOX-2811: fixed another corner case concerning the currentBufferPointer, added junit test
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/RandomAccessBuffer.java
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/io/TestRandomAccessBuffer.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/RandomAccessBuffer.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/RandomAccessBuffer.java?rev=1682091&r1=1682090&r2=1682091&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/RandomAccessBuffer.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/RandomAccessBuffer.java Wed May 27 18:20:17 2015
@@ -203,6 +203,7 @@ public class RandomAccessBuffer implemen
nextBuffer();
System.arraycopy(currentBuffer, 0, b, newOffset, CHUNK_SIZE);
newOffset += CHUNK_SIZE;
+ currentBufferPointer = CHUNK_SIZE;
}
remainingBytes2Read = remainingBytes2Read % CHUNK_SIZE;
// are there still some bytes to be read?
@@ -210,7 +211,7 @@ public class RandomAccessBuffer implemen
{
nextBuffer();
System.arraycopy(currentBuffer, 0, b, newOffset, (int)remainingBytes2Read);
- currentBufferPointer += remainingBytes2Read;
+ currentBufferPointer = remainingBytes2Read;
}
}
else
Modified: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/io/TestRandomAccessBuffer.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/io/TestRandomAccessBuffer.java?rev=1682091&r1=1682090&r2=1682091&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/io/TestRandomAccessBuffer.java (original)
+++ pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/io/TestRandomAccessBuffer.java Wed May 27 18:20:17 2015
@@ -31,7 +31,7 @@ public class TestRandomAccessBuffer exte
private static final int CHUNK_SIZE = 1024;
/**
- * This test checks a corner case where the last read ends
+ * This test checks two corner cases where the last read ends
* exactly at the end of a chunck (remainingBytes == 0)
* @throws IOException
*/
@@ -53,6 +53,24 @@ public class TestRandomAccessBuffer exte
// check the values read from the second chunk
assertEquals(2, byteArray[0]+byteArray[1]);
buffer.close();
+
+ buffer = new RandomAccessBuffer();
+ byteArray = new byte[2*CHUNK_SIZE + 2];
+ // fill the second chunk with "1"
+ for (int i = 0; i < CHUNK_SIZE; i++)
+ {
+ byteArray[CHUNK_SIZE + i] = 1;
+ }
+ // fill the third chunk with "2"
+ for (int i = 0; i < 2; i++)
+ {
+ byteArray[2*CHUNK_SIZE + i] = 2;
+ }
+ buffer.write(byteArray, 0, byteArray.length);
+ buffer.seek(700);
+ byte[] bytesRead = new byte[1348];
+ buffer.read(bytesRead, 0, bytesRead.length);
+ assertEquals(2, buffer.read());
}
/**