diff --git a/pdfbox/src/main/java/org/apache/pdfbox/cos/COSArray.java b/pdfbox/src/main/java/org/apache/pdfbox/cos/COSArray.java index d570274556f..4774d735727 100644 --- a/pdfbox/src/main/java/org/apache/pdfbox/cos/COSArray.java +++ b/pdfbox/src/main/java/org/apache/pdfbox/cos/COSArray.java @@ -79,8 +79,13 @@ public void add( COSBase object ) */ 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); } /** @@ -764,6 +769,10 @@ public void getIndirectObjectKeys(List indirectObjects) for (COSBase cosBase : objects) { + if (cosBase == null) + { + continue; + } COSObjectKey cosBaseKey = cosBase.getKey(); if (cosBaseKey != null && indirectObjects.contains(cosBaseKey)) { diff --git a/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDictionary.java b/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDictionary.java index a86dca3eead..5f005c79dfe 100644 --- a/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDictionary.java +++ b/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDictionary.java @@ -1452,7 +1452,7 @@ public void getIndirectObjectKeys(List indirectObjects) for (Entry 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)))