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 2021/03/21 19:19:21 UTC

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

Author: tilman
Date: Sun Mar 21 19:19:21 2021
New Revision: 1887910

URL: http://svn.apache.org/viewvc?rev=1887910&view=rev
Log:
PDFBOX-4892: avoid NPE

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=1887910&r1=1887909&r2=1887910&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 Sun Mar 21 19:19:21 2021
@@ -19,15 +19,15 @@ package org.apache.pdfbox.examples.pdmod
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
-import java.util.List;
-import java.util.Map;
+import java.util.List;
+import java.util.Map;
 import java.util.Map.Entry;
 
 import org.apache.pdfbox.Loader;
 import org.apache.pdfbox.pdmodel.PDDocument;
-import org.apache.pdfbox.pdmodel.PDDocumentNameDictionary;
-import org.apache.pdfbox.pdmodel.PDEmbeddedFilesNameTreeNode;
-import org.apache.pdfbox.pdmodel.PDPage;
+import org.apache.pdfbox.pdmodel.PDDocumentNameDictionary;
+import org.apache.pdfbox.pdmodel.PDEmbeddedFilesNameTreeNode;
+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;
@@ -59,13 +59,13 @@ public final class ExtractEmbeddedFiles
             usage();
             System.exit(1);
         }
-
-        File pdfFile = new File(args[0]);
-        String filePath = pdfFile.getParent() + System.getProperty("file.separator");
-        try (PDDocument document = Loader.loadPDF(pdfFile))
-        {
-            PDDocumentNameDictionary namesDictionary =
-                    new PDDocumentNameDictionary(document.getDocumentCatalog());
+
+        File pdfFile = new File(args[0]);
+        String filePath = pdfFile.getParent() + System.getProperty("file.separator");
+        try (PDDocument document = Loader.loadPDF(pdfFile))
+        {
+            PDDocumentNameDictionary namesDictionary =
+                    new PDDocumentNameDictionary(document.getDocumentCatalog());
             PDEmbeddedFilesNameTreeNode efTree = namesDictionary.getEmbeddedFiles();
             if (efTree != null)
             {
@@ -111,6 +111,10 @@ public final class ExtractEmbeddedFiles
         else
         {
             List<PDNameTreeNode<PDComplexFileSpecification>> kids = efTree.getKids();
+            if (kids == null)
+            {
+                return;
+            }
             for (PDNameTreeNode<PDComplexFileSpecification> node : kids)
             {
                 names = node.getNames();