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 2014/09/02 18:33:09 UTC

svn commit: r1622063 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/NonSequentialPDFParser.java

Author: tilman
Date: Tue Sep  2 16:33:09 2014
New Revision: 1622063

URL: http://svn.apache.org/r1622063
Log:
PDFBOX-2306: be lenient, allow stream to end with endobj

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=1622063&r1=1622062&r2=1622063&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 Tue Sep  2 16:33:09 2014
@@ -1564,11 +1564,18 @@ public class NonSequentialPDFParser exte
                 readUntilEndStream(new EndstreamOutputStream(out));
             }
             String endStream = readString();
-            if (!endStream.equals("endstream"))
+            if (endStream.equals("endobj") && isLenient)
+            {
+                LOG.warn("stream ends with 'endobj' instead of 'endstream' at offset "
+                        + pdfSource.getOffset());
+                // avoid follow-up warning about missing endobj
+                pdfSource.unread("endobj".getBytes("ISO-8859-1"));
+            }
+            else if (!endStream.equals("endstream"))
             {
                 throw new IOException(
-                        "Error reading stream using length value. Expected='endstream' actual='"
-                                + endStream + "' at offset " + pdfSource.getOffset());
+                        "Error reading stream, expected='endstream' actual='"
+                        + endStream + "' at offset " + pdfSource.getOffset());
             }
         }
         finally