Author: msahyoun Date: Wed Jan 7 07:46:39 2015 New Revision: 1650002 URL: http://svn.apache.org/r1650002 Log: PDFBOX-2516 PDFBOX-2588 create non existing dictionary key if needed
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDFieldTreeNode.java pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/form/TestFields.java 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=1650002&r1=1650001&r2=1650002&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 Jan 7 07:46:39 2015 @@ -145,6 +145,10 @@ public abstract class PDFieldTreeNode im if (attributesNode != null) { attributesNode.getDictionary().setItem(key, value); + } + else + { + getDictionary().setItem(key, value); } } Modified: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/form/TestFields.java URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/form/TestFields.java?rev=1650002&r1=1650001&r2=1650002&view=diff ============================================================================== --- pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/form/TestFields.java (original) +++ pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/form/TestFields.java Wed Jan 7 07:46:39 2015 @@ -116,6 +116,19 @@ public class TestFields extends TestCase assertTrue( textBox.isComb() ); textBox.setComb( true ); assertTrue( textBox.isComb() ); + + // assert that there is no value, set the field value and + // ensure it has been set + assertNull(textBox.getDictionary().getItem(COSName.V)); + textBox.setValue("field value"); + assertNotNull(textBox.getDictionary().getItem(COSName.V)); + assertEquals(textBox.getValue(),"field value"); + + // assert when setting to null the key has also been removed + assertNotNull(textBox.getDictionary().getItem(COSName.V)); + textBox.setValue(null); + assertNull(textBox.getDictionary().getItem(COSName.V)); + } finally {