Author: tilman
Date: Thu Sep 4 11:41:13 2025
New Revision: 1928227
Log:
PDFBOX-6059: avoid ClassCastException
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/taggedpdf/PDLayoutAttributeObject.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalGray.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/optionalcontent/PDOptionalContentProperties.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/PDBorderStyleDictionary.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/PDSeedValue.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/documentnavigation/outline/PDOutlineItem.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDAcroForm.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDField.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDFieldFactory.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDNonTerminalField.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDSignatureField.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDTerminalField.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDVariableText.java
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/taggedpdf/PDLayoutAttributeObject.java
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/taggedpdf/PDLayoutAttributeObject.java
Thu Sep 4 08:30:15 2025 (r1928226)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/taggedpdf/PDLayoutAttributeObject.java
Thu Sep 4 11:41:13 2025 (r1928227)
@@ -19,6 +19,7 @@ package org.apache.pdfbox.pdmodel.docume
import org.apache.pdfbox.cos.COSArray;
import org.apache.pdfbox.cos.COSBase;
import org.apache.pdfbox.cos.COSDictionary;
+import org.apache.pdfbox.cos.COSName;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.apache.pdfbox.pdmodel.graphics.color.PDGamma;
@@ -840,10 +841,10 @@ public class PDLayoutAttributeObject ext
*/
public PDRectangle getBBox()
{
- COSBase base = this.getCOSObject().getDictionaryObject(BBOX);
- if (base instanceof COSArray)
+ COSArray array = this.getCOSObject().getCOSArray(COSName.BBOX);
+ if (array != null)
{
- return new PDRectangle((COSArray) base);
+ return new PDRectangle(array);
}
return null;
}
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalGray.java
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalGray.java
Thu Sep 4 08:30:15 2025 (r1928226)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalGray.java
Thu Sep 4 11:41:13 2025 (r1928227)
@@ -21,7 +21,6 @@ import java.util.Map;
import org.apache.pdfbox.cos.COSArray;
import org.apache.pdfbox.cos.COSFloat;
import org.apache.pdfbox.cos.COSName;
-import org.apache.pdfbox.cos.COSNumber;
/**
* A CalGray colour space is a special case of a single-component CIE-based
@@ -113,13 +112,7 @@ public final class PDCalGray extends PDC
*/
public float getGamma()
{
- float retval = 1.0f;
- COSNumber gamma = (COSNumber)
dictionary.getDictionaryObject(COSName.GAMMA);
- if (gamma != null)
- {
- retval = gamma.floatValue();
- }
- return retval;
+ return dictionary.getFloat(COSName.GAMMA, 1.0f);
}
/**
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/optionalcontent/PDOptionalContentProperties.java
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/optionalcontent/PDOptionalContentProperties.java
Thu Sep 4 08:30:15 2025 (r1928226)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/optionalcontent/PDOptionalContentProperties.java
Thu Sep 4 11:41:13 2025 (r1928227)
@@ -177,7 +177,7 @@ public class PDOptionalContentProperties
ocgs.add(ocg.getCOSObject());
//By default, add new group to the "Order" entry so it appears in the
user interface
- COSArray order = (COSArray)getD().getDictionaryObject(COSName.ORDER);
+ COSArray order = getD().getCOSArray(COSName.ORDER);
if (order == null)
{
order = new COSArray();
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/PDBorderStyleDictionary.java
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/PDBorderStyleDictionary.java
Thu Sep 4 08:30:15 2025 (r1928226)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/PDBorderStyleDictionary.java
Thu Sep 4 11:41:13 2025 (r1928227)
@@ -169,7 +169,7 @@ public class PDBorderStyleDictionary imp
*/
public PDLineDashPattern getDashStyle()
{
- COSArray d = (COSArray) getCOSObject().getDictionaryObject(COSName.D);
+ COSArray d = getCOSObject().getCOSArray(COSName.D);
if (d == null)
{
d = new COSArray();
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/PDSeedValue.java
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/PDSeedValue.java
Thu Sep 4 08:30:15 2025 (r1928226)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/PDSeedValue.java
Thu Sep 4 11:41:13 2025 (r1928227)
@@ -272,7 +272,7 @@ public class PDSeedValue implements COSO
public List<String> getSubFilter()
{
List<String> retval = null;
- COSArray fields =
(COSArray)dictionary.getDictionaryObject(COSName.SUB_FILTER);
+ COSArray fields = dictionary.getCOSArray(COSName.SUB_FILTER);
if (fields != null)
{
@@ -312,7 +312,7 @@ public class PDSeedValue implements COSO
public List<String> getDigestMethod()
{
List<String> retval = null;
- COSArray fields =
(COSArray)dictionary.getDictionaryObject(COSName.DIGEST_METHOD);
+ COSArray fields = dictionary.getCOSArray(COSName.DIGEST_METHOD);
if (fields != null)
{
@@ -401,7 +401,7 @@ public class PDSeedValue implements COSO
public List<String> getReasons()
{
List<String> retval = null;
- COSArray fields =
(COSArray)dictionary.getDictionaryObject(COSName.REASONS);
+ COSArray fields = dictionary.getCOSArray(COSName.REASONS);
if (fields != null)
{
@@ -562,7 +562,7 @@ public class PDSeedValue implements COSO
public List<String> getLegalAttestation()
{
List<String> retval = null;
- COSArray fields =
(COSArray)dictionary.getDictionaryObject(COSName.LEGAL_ATTESTATION);
+ COSArray fields = dictionary.getCOSArray(COSName.LEGAL_ATTESTATION);
if (fields != null)
{
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/documentnavigation/outline/PDOutlineItem.java
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/documentnavigation/outline/PDOutlineItem.java
Thu Sep 4 08:30:15 2025 (r1928226)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/documentnavigation/outline/PDOutlineItem.java
Thu Sep 4 11:41:13 2025 (r1928227)
@@ -301,7 +301,7 @@ public final class PDOutlineItem extends
public PDStructureElement getStructureElement()
{
PDStructureElement se = null;
- COSDictionary dic = (COSDictionary)
getCOSObject().getDictionaryObject(COSName.SE);
+ COSDictionary dic = getCOSObject().getCOSDictionary(COSName.SE);
if( dic != null )
{
se = new PDStructureElement( dic );
@@ -327,7 +327,7 @@ public final class PDOutlineItem extends
*/
public PDColor getTextColor()
{
- COSArray csValues = (COSArray)
getCOSObject().getDictionaryObject(COSName.C);
+ COSArray csValues = getCOSObject().getCOSArray(COSName.C);
if( csValues == null )
{
csValues = new COSArray();
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDAcroForm.java
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDAcroForm.java
Thu Sep 4 08:30:15 2025 (r1928226)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDAcroForm.java
Thu Sep 4 11:41:13 2025 (r1928227)
@@ -36,7 +36,6 @@ import org.apache.pdfbox.cos.COSArray;
import org.apache.pdfbox.cos.COSBase;
import org.apache.pdfbox.cos.COSDictionary;
import org.apache.pdfbox.cos.COSName;
-import org.apache.pdfbox.cos.COSNumber;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
@@ -615,13 +614,7 @@ public final class PDAcroForm implements
*/
public int getQ()
{
- int retval = 0;
- COSNumber number =
(COSNumber)dictionary.getDictionaryObject(COSName.Q);
- if (number != null)
- {
- retval = number.intValue();
- }
- return retval;
+ return dictionary.getInt(COSName.Q, 0);
}
/**
@@ -875,12 +868,12 @@ public final class PDAcroForm implements
if (field.getParent() == null)
{
// if the field has no parent, assume it is at root level
list, remove it from there
- array = (COSArray)
dictionary.getDictionaryObject(COSName.FIELDS);
+ array = dictionary.getCOSArray(COSName.FIELDS);
}
else
{
// if the field has a parent, then remove from the list there
- array = (COSArray)
field.getParent().getCOSObject().getDictionaryObject(COSName.KIDS);
+ array =
field.getParent().getCOSObject().getCOSArray(COSName.KIDS);
}
array.removeObject(field.getCOSObject());
}
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDField.java
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDField.java
Thu Sep 4 08:30:15 2025 (r1928226)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDField.java
Thu Sep 4 11:41:13 2025 (r1928227)
@@ -224,7 +224,7 @@ public abstract class PDField implements
*/
public PDFormFieldAdditionalActions getActions()
{
- COSDictionary aa = (COSDictionary)
dictionary.getDictionaryObject(COSName.AA);
+ COSDictionary aa = dictionary.getCOSDictionary(COSName.AA);
if (aa != null)
{
return new PDFormFieldAdditionalActions(aa);
@@ -336,7 +336,7 @@ public abstract class PDField implements
PDField findKid(String[] name, int nameIndex)
{
PDField retval = null;
- COSArray kids = (COSArray)
dictionary.getDictionaryObject(COSName.KIDS);
+ COSArray kids = dictionary.getCOSArray(COSName.KIDS);
if (kids != null)
{
for (int i = 0; retval == null && i < kids.size(); i++)
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDFieldFactory.java
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDFieldFactory.java
Thu Sep 4 08:30:15 2025 (r1928226)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDFieldFactory.java
Thu Sep 4 11:41:13 2025 (r1928227)
@@ -55,7 +55,7 @@ public final class PDFieldFactory
// a field name (other than annotations)
if (field.containsKey(COSName.KIDS))
{
- COSArray kids = (COSArray) field.getDictionaryObject(COSName.KIDS);
+ COSArray kids = field.getCOSArray(COSName.KIDS);
if (kids != null && kids.size() > 0)
{
for (int i = 0; i < kids.size(); i++)
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDNonTerminalField.java
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDNonTerminalField.java
Thu Sep 4 08:30:15 2025 (r1928226)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDNonTerminalField.java
Thu Sep 4 11:41:13 2025 (r1928227)
@@ -25,7 +25,6 @@ import org.apache.commons.logging.LogFac
import org.apache.pdfbox.cos.COSArray;
import org.apache.pdfbox.cos.COSBase;
import org.apache.pdfbox.cos.COSDictionary;
-import org.apache.pdfbox.cos.COSInteger;
import org.apache.pdfbox.cos.COSName;
import org.apache.pdfbox.pdmodel.common.COSArrayList;
import org.apache.pdfbox.pdmodel.fdf.FDFField;
@@ -70,14 +69,8 @@ public class PDNonTerminalField extends
@Override
public int getFieldFlags()
{
- int retval = 0;
- COSInteger ff = (COSInteger)
getCOSObject().getDictionaryObject(COSName.FF);
- if (ff != null)
- {
- retval = ff.intValue();
- }
// There is no need to look up the parent hierarchy within a non
terminal field
- return retval;
+ return getCOSObject().getInt(COSName.FF, 0);
}
@Override
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDSignatureField.java
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDSignatureField.java
Thu Sep 4 08:30:15 2025 (r1928226)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDSignatureField.java
Thu Sep 4 11:41:13 2025 (r1928227)
@@ -196,7 +196,7 @@ public class PDSignatureField extends PD
*/
public PDSeedValue getSeedValue()
{
- COSDictionary dict = (COSDictionary)
getCOSObject().getDictionaryObject(COSName.SV);
+ COSDictionary dict = getCOSObject().getCOSDictionary(COSName.SV);
PDSeedValue sv = null;
if (dict != null)
{
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDTerminalField.java
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDTerminalField.java
Thu Sep 4 08:30:15 2025 (r1928226)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDTerminalField.java
Thu Sep 4 11:41:13 2025 (r1928227)
@@ -164,7 +164,7 @@ public abstract class PDTerminalField ex
public List<PDAnnotationWidget> getWidgets()
{
List<PDAnnotationWidget> widgets = new ArrayList<PDAnnotationWidget>();
- COSArray kids =
(COSArray)getCOSObject().getDictionaryObject(COSName.KIDS);
+ COSArray kids = getCOSObject().getCOSArray(COSName.KIDS);
if (kids == null)
{
// the field itself is a widget
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDVariableText.java
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDVariableText.java
Thu Sep 4 08:30:15 2025 (r1928226)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDVariableText.java
Thu Sep 4 11:41:13 2025 (r1928227)
@@ -153,8 +153,7 @@ public abstract class PDVariableText ext
*/
public String getDefaultStyleString()
{
- COSString defaultStyleString = (COSString)
getCOSObject().getDictionaryObject(COSName.DS);
- return defaultStyleString.getString();
+ return getCOSObject().getString(COSName.DS);
}
/**