You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2016/01/09 19:50:32 UTC

svn commit: r1723874 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java

Author: tilman
Date: Sat Jan  9 18:50:31 2016
New Revision: 1723874

URL: http://svn.apache.org/viewvc?rev=1723874&view=rev
Log:
PDFBOX-3186: at least one space 

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java?rev=1723874&r1=1723873&r2=1723874&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java Sat Jan  9 18:50:31 2016
@@ -1189,25 +1189,28 @@ public class COSParser extends BaseParse
         }
         // seek to offset-1 
         source.seek(startXRefOffset-1);
-        // skip whitespaces
-        skipSpaces();
-        // next value has to be a digit
-        if (isDigit())
+        int nextValue = source.read();
+        // the first character has to be whitespace(s), and then a digit
+        if (isWhitespace(nextValue))
         {
-            try
-            {
-                // it's a XRef stream
-                readObjectNumber();
-                readGenerationNumber();
-                readExpectedString(OBJ_MARKER, true);
-                source.seek(startXRefOffset);
-                return startXRefOffset;
-            }
-            catch (IOException exception)
+            skipSpaces();
+            if (isDigit())
             {
+                try
+                {
+                    // it's a XRef stream
+                    readObjectNumber();
+                    readGenerationNumber();
+                    readExpectedString(OBJ_MARKER, true);
+                    source.seek(startXRefOffset);
+                    return startXRefOffset;
+                }
+                catch (IOException exception)
+                {
                 // there wasn't an object of a xref stream
-                // try to repair the offset
-                source.seek(startXRefOffset);
+                    // try to repair the offset
+                    source.seek(startXRefOffset);
+                }
             }
         }
         // try to find a fixed offset
@@ -1237,7 +1240,7 @@ public class COSParser extends BaseParse
             LOG.debug("Fixed reference for xref table/stream " + objectOffset + " -> " + newOffset);
             return newOffset;
         }
-        LOG.error("Can't find the object axref table/stream at offset " + objectOffset);
+        LOG.error("Can't find the object xref table/stream at offset " + objectOffset);
         return 0;
     }