You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ad...@apache.org on 2010/11/19 23:42:38 UTC
svn commit: r1037069 -
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDNameTreeNode.java
Author: adam
Date: Fri Nov 19 22:42:38 2010
New Revision: 1037069
URL: http://svn.apache.org/viewvc?rev=1037069&view=rev
Log:
PDFBOX-891: Malformed document causes NPE in PDNameTreeNode.getValue
Patch courtesy of Kevin Jackson
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDNameTreeNode.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDNameTreeNode.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDNameTreeNode.java?rev=1037069&r1=1037068&r2=1037069&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDNameTreeNode.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDNameTreeNode.java Fri Nov 19 22:42:38 2010
@@ -23,6 +23,8 @@ import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.apache.pdfbox.cos.COSArray;
import org.apache.pdfbox.cos.COSBase;
@@ -39,6 +41,7 @@ import org.apache.pdfbox.cos.COSString;
*/
public class PDNameTreeNode implements COSObjectable
{
+ private static final Log log = LogFactory.getLog(PDNameTreeNode.class);
private COSDictionary node;
private Class valueType = null;
@@ -147,15 +150,22 @@ public class PDNameTreeNode implements C
else
{
List kids = getKids();
- for( int i=0; i<kids.size() && retval == null; i++ )
+ if (kids != null)
{
- PDNameTreeNode childNode = (PDNameTreeNode)kids.get( i );
- if( childNode.getLowerLimit().compareTo( name ) <= 0 &&
- childNode.getUpperLimit().compareTo( name ) >= 0 )
+ for( int i=0; i<kids.size() && retval == null; i++ )
{
- retval = childNode.getValue( name );
+ PDNameTreeNode childNode = (PDNameTreeNode)kids.get( i );
+ if( childNode.getLowerLimit().compareTo( name ) <= 0 &&
+ childNode.getUpperLimit().compareTo( name ) >= 0 )
+ {
+ retval = childNode.getValue( name );
+ }
}
}
+ else
+ {
+ log.warn("NameTreeNode does not have \"names\" nor \"kids\" objects.");
+ }
}
return retval;
}