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)))