You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2014/11/07 23:41:48 UTC

svn commit: r1637476 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java

Author: tilman
Date: Fri Nov  7 22:41:48 2014
New Revision: 1637476

URL: http://svn.apache.org/r1637476
Log:
PDFBOX-2470: avoid ClassCastException or NullPointerException in addSignature, as suggested by Huynh and John Hewson

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java?rev=1637476&r1=1637475&r2=1637476&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java Fri Nov  7 22:41:48 2014
@@ -328,17 +328,20 @@ public class PDDocument implements Close
                     {
                         COSDictionary cosBaseDict = (COSDictionary) base;
 
-                        // Appearance Dictionary auslesen und setzen
-                        PDAppearanceDictionary ap = new PDAppearanceDictionary(
-                                (COSDictionary) cosBaseDict.getItem(COSName.AP));
+                        // read and set Appearance Dictionary
+                        PDAppearanceDictionary ap = 
+                                new PDAppearanceDictionary((COSDictionary)cosBaseDict.getDictionaryObject(COSName.AP));
                         ap.getCOSObject().setDirect(true);
                         signatureField.getWidget().setAppearance(ap);
 
-                        // AcroForm DefaultRessource auslesen und setzen
+                        // read and set AcroForm DefaultResource
                         COSBase dr = cosBaseDict.getItem(COSName.DR);
-                        dr.setDirect(true);
-                        dr.setNeedToBeUpdate(true);
-                        acroFormDict.setItem(COSName.DR, dr);
+                        if (dr != null)
+                        {
+                            dr.setDirect(true);
+                            dr.setNeedToBeUpdate(true);
+                            acroFormDict.setItem(COSName.DR, dr);
+                        }
                         sigFieldNotFound = false;
                     }
                 }