Author: lehmi Date: Sun Oct 29 15:30:24 2023 New Revision: 1913425 URL: http://svn.apache.org/viewvc?rev=1913425&view=rev Log: PDFBOX-5707: avoid NPE when collecting all indirect objects keys of a COSArray/COSDictionary
Modified: pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSArray.java pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDictionary.java Modified: pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSArray.java URL: http://svn.apache.org/viewvc/pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSArray.java?rev=1913425&r1=1913424&r2=1913425&view=diff ============================================================================== --- pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSArray.java (original) +++ pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSArray.java Sun Oct 29 15:30:24 2023 @@ -22,7 +22,6 @@ import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.stream.Collectors; -import java.util.stream.StreamSupport; import org.apache.pdfbox.pdmodel.common.COSObjectable; @@ -80,8 +79,13 @@ public class COSArray extends COSBase im */ public void add( COSObjectable object ) { - objects.add( object.getCOSObject() ); - getUpdateState().update(object.getCOSObject()); + COSBase base = null; + if (object != null) + { + base = object.getCOSObject(); + } + objects.add(base); + getUpdateState().update(base); } /** @@ -765,6 +769,10 @@ public class COSArray extends COSBase im for (COSBase cosBase : objects) { + if (cosBase == null) + { + continue; + } COSObjectKey cosBaseKey = cosBase.getKey(); if (cosBaseKey != null && indirectObjects.contains(cosBaseKey)) { Modified: pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDictionary.java URL: http://svn.apache.org/viewvc/pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDictionary.java?rev=1913425&r1=1913424&r2=1913425&view=diff ============================================================================== --- pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDictionary.java (original) +++ pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDictionary.java Sun Oct 29 15:30:24 2023 @@ -1453,7 +1453,7 @@ public class COSDictionary extends COSBa for (Entry<COSName, COSBase> entry : items.entrySet()) { COSBase cosBase = entry.getValue(); - COSObjectKey cosBaseKey = cosBase.getKey(); + COSObjectKey cosBaseKey = cosBase != null ? cosBase.getKey() : null; // avoid endless recursions if (COSName.PARENT.equals(entry.getKey()) || (cosBaseKey != null && indirectObjects.contains(cosBaseKey)))