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 );
+                       }
+               }
     }
 
     /**


Reply via email to