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 2015/07/16 22:00:32 UTC
svn commit: r1691437 -
/pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/process/PageTreeValidationProcess.java
Author: tilman
Date: Thu Jul 16 20:00:32 2015
New Revision: 1691437
URL: http://svn.apache.org/r1691437
Log:
PDFBOX-2886: avoid IllegalArgumentException if /Pages is missing
Modified:
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/process/PageTreeValidationProcess.java
Modified: pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/process/PageTreeValidationProcess.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/process/PageTreeValidationProcess.java?rev=1691437&r1=1691436&r2=1691437&view=diff
==============================================================================
--- pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/process/PageTreeValidationProcess.java (original)
+++ pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/process/PageTreeValidationProcess.java Thu Jul 16 20:00:32 2015
@@ -21,11 +21,14 @@
package org.apache.pdfbox.preflight.process;
+import org.apache.pdfbox.cos.COSDictionary;
+import org.apache.pdfbox.cos.COSName;
import static org.apache.pdfbox.preflight.PreflightConfiguration.PAGE_PROCESS;
import static org.apache.pdfbox.preflight.PreflightConstants.ERROR_SYNTAX_NOCATALOG;
import org.apache.pdfbox.pdmodel.PDDocumentCatalog;
import org.apache.pdfbox.pdmodel.PDPage;
+import static org.apache.pdfbox.preflight.PreflightConstants.ERROR_PDF_PROCESSING_MISSING;
import org.apache.pdfbox.preflight.PreflightContext;
import org.apache.pdfbox.preflight.ValidationResult.ValidationError;
import org.apache.pdfbox.preflight.exception.ValidationException;
@@ -40,6 +43,13 @@ public class PageTreeValidationProcess e
PDDocumentCatalog catalog = context.getDocument().getDocumentCatalog();
if (catalog != null)
{
+ COSDictionary catalogDict = catalog.getCOSObject();
+ if (!(catalogDict.getDictionaryObject(COSName.PAGES) instanceof COSDictionary))
+ {
+ addValidationError(context, new ValidationError(ERROR_PDF_PROCESSING_MISSING,
+ "/Pages dictionary entry is missing in document catalog"));
+ return;
+ }
int numPages = context.getDocument().getNumberOfPages();
for (int i = 0; i < numPages; i++)
{