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/07/01 18:49:13 UTC
svn commit: r1688687 -
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDCheckbox.java
Author: msahyoun
Date: Wed Jul 1 16:49:13 2015
New Revision: 1688687
URL: http://svn.apache.org/r1688687
Log:
PDFBOX-2849: avoid potential ClassCastException for incorrect dictionary entries
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDCheckbox.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDCheckbox.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDCheckbox.java?rev=1688687&r1=1688686&r2=1688687&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDCheckbox.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDCheckbox.java Wed Jul 1 16:49:13 2015
@@ -22,6 +22,7 @@ import java.util.Collections;
import java.util.List;
import java.util.Set;
+import org.apache.pdfbox.cos.COSBase;
import org.apache.pdfbox.cos.COSDictionary;
import org.apache.pdfbox.cos.COSName;
import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationWidget;
@@ -92,8 +93,17 @@ public final class PDCheckbox extends PD
*/
public String getValue()
{
- COSName value = (COSName) getInheritableAttribute(COSName.V);
- return value == null ? "" : value.getName();
+ // the dictionary shall be a name object but it might not be
+ // so don't assume it is.
+ COSBase value = getInheritableAttribute(COSName.V);
+ if (value instanceof COSName)
+ {
+ return ((COSName)value).getName();
+ }
+ else
+ {
+ return "";
+ }
}
/**
@@ -103,8 +113,17 @@ public final class PDCheckbox extends PD
*/
public String getDefaultValue()
{
- COSName value = (COSName) getInheritableAttribute(COSName.DV);
- return value == null ? "" : value.getName();
+ // the dictionary shall be a name object but it might not be
+ // so don't assume it is.
+ COSBase value = getInheritableAttribute(COSName.DV);
+ if (value instanceof COSName)
+ {
+ return ((COSName)value).getName();
+ }
+ else
+ {
+ return "";
+ }
}
@Override