Author: tilman
Date: Wed Sep 3 18:49:56 2025
New Revision: 1928217
Log:
PDFBOX-6059: avoid ClassCastException
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPageTree.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDMarkedContentReference.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDUserAttributeObject.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/prepress/PDBoxStyle.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/taggedpdf/PDArtifactMarkedContent.java
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/PDStandardAttributeObject.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/encryption/PDCryptFilterDictionary.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/encryption/PDEncryption.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFont.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFontDescriptor.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType3CharProc.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCIEDictionaryBasedColorSpace.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalRGB.java
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPageTree.java
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPageTree.java
Wed Sep 3 18:44:49 2025 (r1928216)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPageTree.java
Wed Sep 3 18:49:56 2025 (r1928217)
@@ -490,7 +490,7 @@ public class PDPageTree implements COSOb
{
// remove from parent's kids
COSDictionary parent = (COSDictionary)
node.getDictionaryObject(COSName.PARENT, COSName.P);
- COSArray kids = (COSArray)parent.getDictionaryObject(COSName.KIDS);
+ COSArray kids = parent.getCOSArray(COSName.KIDS);
if (kids.removeObject(node))
{
// update ancestor counts
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDMarkedContentReference.java
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDMarkedContentReference.java
Wed Sep 3 18:44:49 2025 (r1928216)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDMarkedContentReference.java
Wed Sep 3 18:49:56 2025 (r1928217)
@@ -67,7 +67,7 @@ public class PDMarkedContentReference im
*/
public PDPage getPage()
{
- COSDictionary pg = (COSDictionary)
this.getCOSObject().getDictionaryObject(COSName.PG);
+ COSDictionary pg = this.getCOSObject().getCOSDictionary(COSName.PG);
if (pg != null)
{
return new PDPage(pg);
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDUserAttributeObject.java
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDUserAttributeObject.java
Wed Sep 3 18:44:49 2025 (r1928216)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDUserAttributeObject.java
Wed Sep 3 18:49:56 2025 (r1928217)
@@ -95,7 +95,7 @@ public class PDUserAttributeObject exten
*/
public void addUserProperty(PDUserProperty userProperty)
{
- COSArray p = (COSArray)
this.getCOSObject().getDictionaryObject(COSName.P);
+ COSArray p = this.getCOSObject().getCOSArray(COSName.P);
p.add(userProperty);
this.notifyChanged();
}
@@ -111,7 +111,7 @@ public class PDUserAttributeObject exten
{
return;
}
- COSArray p = (COSArray)
this.getCOSObject().getDictionaryObject(COSName.P);
+ COSArray p = this.getCOSObject().getCOSArray(COSName.P);
p.remove(userProperty.getCOSObject());
this.notifyChanged();
}
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/prepress/PDBoxStyle.java
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/prepress/PDBoxStyle.java
Wed Sep 3 18:44:49 2025 (r1928216)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/prepress/PDBoxStyle.java
Wed Sep 3 18:49:56 2025 (r1928217)
@@ -81,7 +81,7 @@ public class PDBoxStyle implements COSOb
*/
public PDColor getGuidelineColor()
{
- COSArray colorValues = (COSArray)
dictionary.getDictionaryObject(COSName.C);
+ COSArray colorValues = dictionary.getCOSArray(COSName.C);
if( colorValues == null )
{
colorValues = new COSArray();
@@ -163,7 +163,7 @@ public class PDBoxStyle implements COSOb
public PDLineDashPattern getLineDashPattern()
{
PDLineDashPattern pattern;
- COSArray d = (COSArray) dictionary.getDictionaryObject(COSName.D);
+ COSArray d = dictionary.getCOSArray(COSName.D);
if( d == null )
{
d = new COSArray();
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/taggedpdf/PDArtifactMarkedContent.java
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/taggedpdf/PDArtifactMarkedContent.java
Wed Sep 3 18:44:49 2025 (r1928216)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/taggedpdf/PDArtifactMarkedContent.java
Wed Sep 3 18:49:56 2025 (r1928217)
@@ -55,8 +55,7 @@ public class PDArtifactMarkedContent ext
public PDRectangle getBBox()
{
PDRectangle retval = null;
- COSArray a = (COSArray) this.getProperties().getDictionaryObject(
- COSName.BBOX);
+ COSArray a = this.getProperties().getCOSArray(COSName.BBOX);
if (a != null)
{
retval = new PDRectangle(a);
@@ -128,8 +127,7 @@ public class PDArtifactMarkedContent ext
*/
private boolean isAttached(String edge)
{
- COSArray a = (COSArray) this.getProperties().getDictionaryObject(
- COSName.ATTACHED);
+ COSArray a = this.getProperties().getCOSArray(COSName.ATTACHED);
if (a != null)
{
for (int i = 0; i < a.size(); i++)
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
Wed Sep 3 18:44:49 2025 (r1928216)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/taggedpdf/PDLayoutAttributeObject.java
Wed Sep 3 18:49:56 2025 (r1928217)
@@ -840,11 +840,10 @@ public class PDLayoutAttributeObject ext
*/
public PDRectangle getBBox()
{
- COSArray array =
- (COSArray) this.getCOSObject().getDictionaryObject(BBOX);
- if (array != null)
+ COSBase base = this.getCOSObject().getDictionaryObject(BBOX);
+ if (base instanceof COSArray)
{
- return new PDRectangle(array);
+ return new PDRectangle((COSArray) base);
}
return null;
}
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/taggedpdf/PDStandardAttributeObject.java
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/taggedpdf/PDStandardAttributeObject.java
Wed Sep 3 18:44:49 2025 (r1928216)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/taggedpdf/PDStandardAttributeObject.java
Wed Sep 3 18:49:56 2025 (r1928217)
@@ -383,10 +383,10 @@ public abstract class PDStandardAttribut
*/
protected PDGamma getColor(String name)
{
- COSArray c = (COSArray) this.getCOSObject().getDictionaryObject(name);
- if (c != null)
+ COSBase base = this.getCOSObject().getDictionaryObject(name);
+ if (base instanceof COSArray)
{
- return new PDGamma(c);
+ return new PDGamma((COSArray) base);
}
return null;
}
@@ -399,12 +399,12 @@ public abstract class PDStandardAttribut
*/
protected Object getColorOrFourColors(String name)
{
- COSArray array =
- (COSArray) this.getCOSObject().getDictionaryObject(name);
- if (array == null)
+ COSBase base = this.getCOSObject().getDictionaryObject(name);
+ if (!(base instanceof COSArray))
{
return null;
}
+ COSArray array = (COSArray) base;
if (array.size() == 3)
{
// only one colour
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/encryption/PDCryptFilterDictionary.java
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/encryption/PDCryptFilterDictionary.java
Wed Sep 3 18:44:49 2025 (r1928216)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/encryption/PDCryptFilterDictionary.java
Wed Sep 3 18:49:56 2025 (r1928217)
@@ -118,7 +118,7 @@ public class PDCryptFilterDictionary imp
*/
public COSName getCryptFilterMethod()
{
- return (COSName)cryptFilterDictionary.getDictionaryObject( COSName.CFM
);
+ return cryptFilterDictionary.getCOSName(COSName.CFM);
}
/**
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/encryption/PDEncryption.java
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/encryption/PDEncryption.java
Wed Sep 3 18:44:49 2025 (r1928216)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/encryption/PDEncryption.java
Wed Sep 3 18:49:56 2025 (r1928217)
@@ -577,7 +577,7 @@ public class PDEncryption implements COS
*/
public COSName getStreamFilterName()
{
- COSName stmF = (COSName) dictionary.getDictionaryObject( COSName.STM_F
);
+ COSName stmF = dictionary.getCOSName(COSName.STM_F );
if (stmF == null)
{
stmF = COSName.IDENTITY;
@@ -603,7 +603,7 @@ public class PDEncryption implements COS
*/
public COSName getStringFilterName()
{
- COSName strF = (COSName) dictionary.getDictionaryObject( COSName.STR_F
);
+ COSName strF = dictionary.getCOSName(COSName.STR_F);
if (strF == null)
{
strF = COSName.IDENTITY;
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFont.java
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFont.java
Wed Sep 3 18:44:49 2025 (r1928216)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFont.java
Wed Sep 3 18:49:56 2025 (r1928217)
@@ -220,7 +220,7 @@ public abstract class PDCIDFont implemen
{
if (fontDescriptor == null)
{
- COSDictionary fd = (COSDictionary)
dict.getDictionaryObject(COSName.FONT_DESC);
+ COSDictionary fd = dict.getCOSDictionary(COSName.FONT_DESC);
if (fd != null)
{
fontDescriptor = new PDFontDescriptor(fd);
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFontDescriptor.java
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFontDescriptor.java
Wed Sep 3 18:44:49 2025 (r1928216)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFontDescriptor.java
Wed Sep 3 18:49:56 2025 (r1928217)
@@ -849,7 +849,7 @@ public final class PDFontDescriptor impl
*/
public PDPanose getPanose()
{
- COSDictionary style =
(COSDictionary)dic.getDictionaryObject(COSName.STYLE);
+ COSDictionary style = dic.getCOSDictionary(COSName.STYLE);
if (style != null)
{
COSString panose =
(COSString)style.getDictionaryObject(COSName.PANOSE);
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType3CharProc.java
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType3CharProc.java
Wed Sep 3 18:44:49 2025 (r1928216)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType3CharProc.java
Wed Sep 3 18:49:56 2025 (r1928217)
@@ -26,7 +26,6 @@ import org.apache.commons.logging.LogFac
import org.apache.pdfbox.contentstream.PDContentStream;
import org.apache.pdfbox.contentstream.operator.Operator;
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.cos.COSStream;
@@ -85,7 +84,7 @@ public final class PDType3CharProc imple
// PDFBOX-5294
LOG.warn("Using resources dictionary found in charproc entry");
LOG.warn("This should have been in the font or in the page
dictionary");
- return new PDResources((COSDictionary)
charStream.getDictionaryObject(COSName.RESOURCES));
+ return new
PDResources(charStream.getCOSDictionary(COSName.RESOURCES));
}
return font.getResources();
}
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCIEDictionaryBasedColorSpace.java
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCIEDictionaryBasedColorSpace.java
Wed Sep 3 18:44:49 2025 (r1928216)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCIEDictionaryBasedColorSpace.java
Wed Sep 3 18:49:56 2025 (r1928217)
@@ -102,7 +102,7 @@ public abstract class PDCIEDictionaryBas
*/
public final PDTristimulus getWhitepoint()
{
- COSArray wp = (COSArray)
dictionary.getDictionaryObject(COSName.WHITE_POINT);
+ COSArray wp = dictionary.getCOSArray(COSName.WHITE_POINT);
if (wp == null)
{
wp = new COSArray();
@@ -122,7 +122,7 @@ public abstract class PDCIEDictionaryBas
*/
public final PDTristimulus getBlackPoint()
{
- COSArray bp = (COSArray)
dictionary.getDictionaryObject(COSName.BLACK_POINT);
+ COSArray bp = dictionary.getCOSArray(COSName.BLACK_POINT);
if (bp == null)
{
bp = new COSArray();
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalRGB.java
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalRGB.java
Wed Sep 3 18:44:49 2025 (r1928216)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalRGB.java
Wed Sep 3 18:49:56 2025 (r1928217)
@@ -120,7 +120,7 @@ public class PDCalRGB extends PDCIEDicti
*/
public final PDGamma getGamma()
{
- COSArray gammaArray = (COSArray)
dictionary.getDictionaryObject(COSName.GAMMA);
+ COSArray gammaArray = dictionary.getCOSArray(COSName.GAMMA);
if (gammaArray == null)
{
gammaArray = new COSArray();
@@ -139,7 +139,7 @@ public class PDCalRGB extends PDCIEDicti
*/
public final float[] getMatrix()
{
- COSArray matrix =
(COSArray)dictionary.getDictionaryObject(COSName.MATRIX);
+ COSArray matrix = dictionary.getCOSArray(COSName.MATRIX);
if (matrix == null)
{
return new float[] { 1, 0, 0, 0, 1, 0, 0, 0, 1 };