You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ms...@apache.org on 2015/02/04 09:02:04 UTC

svn commit: r1657024 - in /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox: pdmodel/interactive/form/ service/interactive/form/

Author: msahyoun
Date: Wed Feb  4 08:02:03 2015
New Revision: 1657024

URL: http://svn.apache.org/r1657024
Log:
PDFBOX-1234 don't swallow IOException when updating the fields appearance

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/FieldUtils.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDField.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDFieldTreeNode.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDTextField.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/service/interactive/form/AppearanceGenerator.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/service/interactive/form/PDAppearanceString.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/FieldUtils.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/FieldUtils.java?rev=1657024&r1=1657023&r2=1657024&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/FieldUtils.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/FieldUtils.java Wed Feb  4 08:02:03 2015
@@ -57,7 +57,6 @@ public final class FieldUtils
             return this.key;
         }
 
-
         public String getValue()
         {
             return this.value;

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDField.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDField.java?rev=1657024&r1=1657023&r2=1657024&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDField.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDField.java Wed Feb  4 08:02:03 2015
@@ -16,6 +16,8 @@
  */
 package org.apache.pdfbox.pdmodel.interactive.form;
 
+import java.io.IOException;
+
 import org.apache.pdfbox.cos.COSDictionary;
 import org.apache.pdfbox.cos.COSInteger;
 import org.apache.pdfbox.cos.COSName;
@@ -111,8 +113,9 @@ public abstract class PDField extends PD
      * 
      * The fields appearance stream needs to be updated to reflect the new field
      * value. This will be done only if the NeedAppearances flag has not been set.
+     * @throws IOException if the appearance couldn't be generated
      */
-    protected void updateFieldAppearances()
+    protected void updateFieldAppearances() throws IOException
     {
         if (!getAcroForm().isNeedAppearances())
         {

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDFieldTreeNode.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDFieldTreeNode.java?rev=1657024&r1=1657023&r2=1657024&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDFieldTreeNode.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDFieldTreeNode.java Wed Feb  4 08:02:03 2015
@@ -289,8 +289,9 @@ public abstract class PDFieldTreeNode im
      * reusing it.
      * 
      * @param fieldValue The new field value.
+     * @throws IOException if there is an error setting the field value.
      */    
-    public abstract void setValue(String fieldValue);
+    public abstract void setValue(String fieldValue) throws IOException;
     
 
     /**

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDTextField.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDTextField.java?rev=1657024&r1=1657023&r2=1657024&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDTextField.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDTextField.java Wed Feb  4 08:02:03 2015
@@ -266,9 +266,10 @@ public final class PDTextField extends P
      * text stream {@link #setValue(PDTextStream)}
      * </p>
      * @param value the value
+     * @throws IOException if there is an error setting the field value
      */
     @Override
-    public void setValue(String value)
+    public void setValue(String value) throws IOException
     {
         if (value != null && !value.isEmpty())
         {
@@ -290,8 +291,9 @@ public final class PDTextField extends P
      * The value is stored in the field dictionaries "V" entry.
      * 
      * @param textStream the value
+     * @throws IOException if there is an error setting the field value
      */
-    public void setValue(PDTextStream textStream)
+    public void setValue(PDTextStream textStream) throws IOException
     {
         if (textStream != null)
         {

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/service/interactive/form/AppearanceGenerator.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/service/interactive/form/AppearanceGenerator.java?rev=1657024&r1=1657023&r2=1657024&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/service/interactive/form/AppearanceGenerator.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/service/interactive/form/AppearanceGenerator.java Wed Feb  4 08:02:03 2015
@@ -44,51 +44,30 @@ public final class AppearanceGenerator
      * Generate the appearances for a single field.
      * 
      * @param field The field which appearances need to be generated.
+     * @throws IOException 
      */
-    public static void generateFieldAppearances(PDField field)
+    public static void generateFieldAppearances(PDField field) throws IOException
     {
         if (field instanceof PDVariableText)
         {
             PDAppearanceString pdAppearance = null;
             Object fieldValue = null;
-            try
-            {
-                pdAppearance = new PDAppearanceString(field.getAcroForm(),
+
+            pdAppearance = new PDAppearanceString(field.getAcroForm(),
                         (PDVariableText) field);
     
                 
-                    fieldValue = field.getValue();
-            }
-            catch (IOException e)
-            {
-                // TODO: Implement the removal of the appearance as this 
-                //       exception occurred either because the value couldn't be read or
-                //       the type is not valid for the field.
+            fieldValue = field.getValue();
 
-            }
             
             // TODO: implement the handling for additional values.
             if (fieldValue instanceof String)
             {
-                try
-                {
-                    pdAppearance.setAppearanceValue((String) fieldValue);
-                }
-                catch (IOException e)
-                {
-                    LOG.debug("Unable to generate the field appearance.", e);
-                }
+                pdAppearance.setAppearanceValue((String) fieldValue);
             } 
             else if (fieldValue instanceof PDTextStream)
             {
-                try
-                {
-                    pdAppearance.setAppearanceValue(((PDTextStream) fieldValue).getAsString());
-                }
-                catch (IOException e)
-                {
-                    LOG.debug("Unable to generate the field appearance.", e);
-                }                
+                pdAppearance.setAppearanceValue(((PDTextStream) fieldValue).getAsString());
             }
             else if (fieldValue != null)
             {

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/service/interactive/form/PDAppearanceString.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/service/interactive/form/PDAppearanceString.java?rev=1657024&r1=1657023&r2=1657024&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/service/interactive/form/PDAppearanceString.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/service/interactive/form/PDAppearanceString.java Wed Feb  4 08:02:03 2015
@@ -413,7 +413,7 @@ public final class PDAppearanceString
         }
         else
         {
-            throw new IOException("Unable to generate field appearance - missing required font resources");
+            throw new IOException("Unable to generate field appearance - missing required font resources: " + cosFontName);
         }
     }