You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ms...@apache.org on 2018/02/10 21:19:29 UTC

svn commit: r1823796 - /pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/ExtractEmbeddedFiles.java

Author: msahyoun
Date: Sat Feb 10 21:19:28 2018
New Revision: 1823796

URL: http://svn.apache.org/viewvc?rev=1823796&view=rev
Log:
PDFBOX-4071: avoid potential NPE as annotationFileAttachment.getFile() might return null

Modified:
    pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/ExtractEmbeddedFiles.java

Modified: pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/ExtractEmbeddedFiles.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/ExtractEmbeddedFiles.java?rev=1823796&r1=1823795&r2=1823796&view=diff
==============================================================================
--- pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/ExtractEmbeddedFiles.java (original)
+++ pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/ExtractEmbeddedFiles.java Sat Feb 10 21:19:28 2018
@@ -29,6 +29,7 @@ import org.apache.pdfbox.pdmodel.PDPage;
 import org.apache.pdfbox.pdmodel.common.PDNameTreeNode;
 import org.apache.pdfbox.pdmodel.common.filespecification.PDComplexFileSpecification;
 import org.apache.pdfbox.pdmodel.common.filespecification.PDEmbeddedFile;
+import org.apache.pdfbox.pdmodel.common.filespecification.PDFileSpecification;
 import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotation;
 import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationFileAttachment;
 
@@ -93,9 +94,13 @@ public final class ExtractEmbeddedFiles
                         if (annotation instanceof PDAnnotationFileAttachment)
                         {
                             PDAnnotationFileAttachment annotationFileAttachment = (PDAnnotationFileAttachment) annotation;
-                            PDComplexFileSpecification fileSpec = (PDComplexFileSpecification) annotationFileAttachment.getFile();
-                            PDEmbeddedFile embeddedFile = getEmbeddedFile(fileSpec);
-                            extractFile(filePath, fileSpec.getFilename(), embeddedFile);
+                            PDFileSpecification fileSpec = annotationFileAttachment.getFile();
+                            if (fileSpec instanceof PDComplexFileSpecification)
+                            {
+                                PDComplexFileSpecification complexFileSpec = (PDComplexFileSpecification) fileSpec;
+                                PDEmbeddedFile embeddedFile = getEmbeddedFile(complexFileSpec);
+                                extractFile(filePath, complexFileSpec.getFilename(), embeddedFile);
+                            }
                         }
                     }
                 }