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/10/26 16:43:24 UTC

svn commit: r1766702 - in /pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight: PreflightContext.java parser/PreflightParser.java process/TrailerValidationProcess.java

Author: tilman
Date: Wed Oct 26 16:43:24 2016
New Revision: 1766702

URL: http://svn.apache.org/viewvc?rev=1766702&view=rev
Log:
PDFBOX-3541: also use length to determine whether it's a linearized file

Modified:
    pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/PreflightContext.java
    pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/parser/PreflightParser.java
    pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/process/TrailerValidationProcess.java

Modified: pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/PreflightContext.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/PreflightContext.java?rev=1766702&r1=1766701&r2=1766702&view=diff
==============================================================================
--- pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/PreflightContext.java (original)
+++ pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/PreflightContext.java Wed Oct 26 16:43:24 2016
@@ -79,6 +79,8 @@ public class PreflightContext implements
 
     private Integer currentPageNumber = null;
     
+    private long fileLen;
+
     /**
      * Create the DocumentHandler using the DataSource which represent the PDF file to check.
      * 
@@ -277,4 +279,13 @@ public class PreflightContext implements
         return currentPageNumber;
     }
 
+    public void setFileLen(long fileLen)
+    {
+        this.fileLen = fileLen;
+    }
+
+    public long getFileLen()
+    {
+        return fileLen;
+    }
 }

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=1766702&r1=1766701&r2=1766702&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 Wed Oct 26 16:43:24 2016
@@ -236,6 +236,7 @@ public class PreflightParser extends PDF
         ctx.setDocument(preflightDocument);
         preflightDocument.setContext(ctx);
         ctx.setXrefTrailerResolver(xrefTrailerResolver);
+        ctx.setFileLen(this.fileLen);
     }
 
     @Override

Modified: pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/process/TrailerValidationProcess.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/process/TrailerValidationProcess.java?rev=1766702&r1=1766701&r2=1766702&view=diff
==============================================================================
--- pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/process/TrailerValidationProcess.java (original)
+++ pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/process/TrailerValidationProcess.java Wed Oct 26 16:43:24 2016
@@ -65,7 +65,8 @@ public class TrailerValidationProcess ex
         COSDictionary linearizedDict = getLinearizedDictionary(pdfDoc);
         // linearized files have two trailers, everything else is not a linearized file
         // so don't make the checks for updated linearized files
-        if (linearizedDict != null && ctx.getXrefTrailerResolver().getTrailerCount() == 2)
+        if (linearizedDict != null && ctx.getXrefTrailerResolver().getTrailerCount() == 2 &&
+                ctx.getFileLen() == linearizedDict.getLong(COSName.L))
         {
             // it is a linearized PDF, check the linearized dictionary
             checkLinearizedDictionnary(ctx, linearizedDict);