You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ju...@apache.org on 2010/06/21 15:10:43 UTC

svn commit: r956566 - in /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox: pdfviewer/PageDrawer.java pdmodel/interactive/annotation/PDAppearanceDictionary.java

Author: jukka
Date: Mon Jun 21 13:10:43 2010
New Revision: 956566

URL: http://svn.apache.org/viewvc?rev=956566&view=rev
Log:
PDFBOX-743: PDAppereanceDictionary#getNormalAppearance might throw NPE

Patch by Philipp Koch

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfviewer/PageDrawer.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/PDAppearanceDictionary.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfviewer/PageDrawer.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfviewer/PageDrawer.java?rev=956566&r1=956565&r2=956566&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfviewer/PageDrawer.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfviewer/PageDrawer.java Mon Jun 21 13:10:43 2010
@@ -124,13 +124,15 @@ public class PageDrawer extends PDFStrea
                     appearanceName = "default";
                 }
                 Map appearanceMap = appearDictionary.getNormalAppearance();
-                PDAppearanceStream appearance =
-                    (PDAppearanceStream)appearanceMap.get( appearanceName );
-                if( appearance != null )
-                {
-                    g.translate( (int)rect.getLowerLeftX(), (int)-rect.getLowerLeftY()  );
-                    processSubStream( page, appearance.getResources(), appearance.getStream() );
-                    g.translate( (int)-rect.getLowerLeftX(), (int)+rect.getLowerLeftY()  );
+                if (appearanceMap != null) { 
+                    PDAppearanceStream appearance = 
+                        (PDAppearanceStream)appearanceMap.get( appearanceName ); 
+                    if( appearance != null ) 
+                    { 
+                        g.translate( (int)rect.getLowerLeftX(), (int)-rect.getLowerLeftY() ); 
+                        processSubStream( page, appearance.getResources(), appearance.getStream() ); 
+                        g.translate( (int)-rect.getLowerLeftX(), (int)+rect.getLowerLeftY() ); 
+                    }
                 }
             }
         }

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/PDAppearanceDictionary.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/PDAppearanceDictionary.java?rev=956566&r1=956565&r2=956566&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/PDAppearanceDictionary.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/PDAppearanceDictionary.java Mon Jun 21 13:10:43 2010
@@ -85,7 +85,11 @@ public class PDAppearanceDictionary impl
     public Map getNormalAppearance()
     {
         COSBase ap = dictionary.getDictionaryObject( COSName.getPDFName( "N" ) );
-        if( ap instanceof COSStream )
+        if ( ap == null )
+        { 
+            return null; 
+        }
+        else if( ap instanceof COSStream )
         {
             COSStream aux = (COSStream) ap;
             ap = new COSDictionary();