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 2020/06/18 15:29:33 UTC

svn commit: r1878960 - in /pdfbox/trunk: pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java preflight/src/main/java/org/apache/pdfbox/preflight/parser/PreflightParser.java

Author: lehmi
Date: Thu Jun 18 15:29:33 2020
New Revision: 1878960

URL: http://svn.apache.org/viewvc?rev=1878960&view=rev
Log:
PDFBOX-3888: clear xref trailer resolver after parsing

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java
    pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/parser/PreflightParser.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=1878960&r1=1878959&r2=1878960&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 Thu Jun 18 15:29:33 2020
@@ -269,10 +269,26 @@ public class COSParser extends BaseParse
                 bfSearchForObjStreams();
             }
         }
+        if (resetTrailerResolver())
+        {
+            xrefTrailerResolver.reset();
+            xrefTrailerResolver = null;
+        }
         return trailer;
     }
 
     /**
+     * Indicates whether the xref trailer resolver should be reseted or not. Should be overwritten if the xref trailer
+     * resolver is needed after the initial parsing.
+     * 
+     * @return true if the xref trailer resolver should be reseted
+     */
+    protected boolean resetTrailerResolver()
+    {
+        return true;
+    }
+
+    /**
      * Parses cross reference tables.
      * 
      * @param startXRefOffset start offset of the first table

Modified: pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/parser/PreflightParser.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/parser/PreflightParser.java?rev=1878960&r1=1878959&r2=1878960&view=diff
==============================================================================
--- pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/parser/PreflightParser.java (original)
+++ pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/parser/PreflightParser.java Thu Jun 18 15:29:33 2020
@@ -223,6 +223,13 @@ public class PreflightParser extends PDF
         objectKeys.forEach(key -> document.getObjectFromPool(key).getObject());
     }
 
+    @Override
+    protected boolean resetTrailerResolver()
+    {
+        // Don't reset the xref trailer resolver after parsing as it is needed for validation
+        return false;
+    }
+
     /**
      * Check that the PDF header match rules of the PDF/A specification. First line (offset 0) must
      * be a comment with the PDF version (version 1.0 isn't conform to the PDF/A specification)