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 2013/12/20 09:02:40 UTC
svn commit: r1552521 -
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/NonSequentialPDFParser.java
Author: lehmi
Date: Fri Dec 20 08:02:39 2013
New Revision: 1552521
URL: http://svn.apache.org/r1552521
Log:
PDFBOX-1769: loop to read all needed bytes
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/NonSequentialPDFParser.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/NonSequentialPDFParser.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/NonSequentialPDFParser.java?rev=1552521&r1=1552520&r2=1552521&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/NonSequentialPDFParser.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/NonSequentialPDFParser.java Fri Dec 20 08:02:39 2013
@@ -1743,16 +1743,26 @@ public class NonSequentialPDFParser exte
*/
private boolean checkBytesAtOffset(byte[] string) throws IOException
{
- byte[] bytesRead = new byte[string.length];
boolean bytesMatching = false;
if (pdfSource.peek() == string[0])
{
- pdfSource.read(bytesRead, 0, string.length);
+ int length = string.length;
+ byte[] bytesRead = new byte[length];
+ int numberOfBytes = pdfSource.read(bytesRead, 0, length);
+ while (numberOfBytes < length)
+ {
+ int readMore = pdfSource.read(bytesRead, numberOfBytes, length-numberOfBytes);
+ if (readMore < 0)
+ {
+ break;
+ }
+ numberOfBytes += readMore;
+ }
if (Arrays.equals(string, bytesRead))
{
bytesMatching = true;
}
- pdfSource.unread(bytesRead);
+ pdfSource.unread(bytesRead, 0, numberOfBytes);
}
return bytesMatching;
}