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; }