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 2017/10/23 19:02:40 UTC

svn commit: r1813061 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java

Author: tilman
Date: Mon Oct 23 19:02:40 2017
New Revision: 1813061

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

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.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=1813061&r1=1813060&r2=1813061&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 Mon Oct 23 19:02:40 2017
@@ -1622,7 +1622,7 @@ public class COSParser extends BaseParse
      */
     private List<COSObjectKey[]> bfSearchForTrailer() throws IOException
     {
-        List<COSObjectKey[]> trailerDicts = new ArrayList<COSObjectKey[]>();
+        List<COSObjectKey[]> trailerDicts = new ArrayList<>();
         long originOffset = source.getPosition();
         source.seek(MINIMUM_SEARCH_OFFSET);
         while (!source.isEOF())
@@ -1671,15 +1671,17 @@ public class COSParser extends BaseParse
         if (trailerdictsSize > 1)
         {
             COSObjectKey[] first = trailerDicts.get(0);
-            for (int i = trailerdictsSize - 1; i > 0; i--)
+            if (first[0] != null && first[1] != null)
             {
-                COSObjectKey[] other = trailerDicts.get(i);
-                if (first[0].equals(other[0]) && first[1].equals(other[1]))
+                for (int i = trailerdictsSize - 1; i > 0; i--)
                 {
-                    trailerDicts.remove(other);
+                    COSObjectKey[] other = trailerDicts.get(i);
+                    if (first[0].equals(other[0]) && first[1].equals(other[1]))
+                    {
+                        trailerDicts.remove(other);
+                    }
                 }
             }
-
         }
         return trailerDicts;
     }