Author: tboehme
Date: Mon Jan 23 15:17:41 2012
New Revision: 1234846
URL: http://svn.apache.org/viewvc?rev=1234846&view=rev
Log:
fix in SecurityHandler resolving PDFBOX-1212: test for null value since
Dictionary objects in object streams are not available during scan for
signature dictionaries
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/encryption/SecurityHandler.java
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/encryption/SecurityHandler.java
URL:
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/encryption/SecurityHandler.java?rev=1234846&r1=1234845&r2=1234846&view=diff
==============================================================================
---
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/encryption/SecurityHandler.java
(original)
+++
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/encryption/SecurityHandler.java
Mon Jan 23 15:17:41 2012
@@ -181,17 +181,20 @@ public abstract class SecurityHandler
private void addDictionaryAndSubDictionary( Set<COSDictionary> set,
COSDictionary dic )
{
- set.add( dic );
- COSArray kids = (COSArray)dic.getDictionaryObject( COSName.KIDS );
- for( int i=0; kids != null && i<kids.size(); i++ )
- {
- addDictionaryAndSubDictionary( set, (COSDictionary)kids.getObject(
i ) );
- }
- COSBase value = dic.getDictionaryObject( COSName.V );
- if( value instanceof COSDictionary )
- {
- addDictionaryAndSubDictionary( set, (COSDictionary)value );
- }
+ if ( dic != null ) // in case dictionary is part of object
stream we have null value here
+ {
+ set.add( dic );
+ COSArray kids = (COSArray)dic.getDictionaryObject(
COSName.KIDS );
+ for( int i=0; kids != null && i<kids.size(); i++ )
+ {
+ addDictionaryAndSubDictionary( set,
(COSDictionary)kids.getObject( i ) );
+ }
+ COSBase value = dic.getDictionaryObject( COSName.V );
+ if( value instanceof COSDictionary )
+ {
+ addDictionaryAndSubDictionary( set,
(COSDictionary)value );
+ }
+ }
}
/**