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 2017/10/09 18:14:22 UTC

svn commit: r1811589 - /pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java

Author: lehmi
Date: Mon Oct  9 18:14:22 2017
New Revision: 1811589

URL: http://svn.apache.org/viewvc?rev=1811589&view=rev
Log:
PDFBOX-3955: don't parse object stream multiple times

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

Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java?rev=1811589&r1=1811588&r2=1811589&view=diff
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java (original)
+++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java Mon Oct  9 18:14:22 2017
@@ -1969,19 +1969,19 @@ public class COSParser extends BaseParse
                 // handle compressed objects
                 if (offset < 0)
                 {
-                    parseObjectStream((int) -offset);
                     COSObject compressedObject = document.getObjectFromPool(entry.getKey());
-                    if (compressedObject != null)
+                    if (compressedObject.getObject() == null)
                     {
-                        COSBase baseObject = compressedObject.getObject();
-                        if (baseObject instanceof COSDictionary)
-                        {
-                            dictionary = (COSDictionary) baseObject;
-                        }
-                        else
-                        {
-                            continue;
-                        }
+                        parseObjectStream((int) -offset);
+                    }
+                    COSBase baseObject = compressedObject.getObject();
+                    if (baseObject instanceof COSDictionary)
+                    {
+                        dictionary = (COSDictionary) baseObject;
+                    }
+                    else
+                    {
+                        continue;
                     }
                 }
                 else