Author: tilman
Date: Wed Sep 3 18:25:05 2025
New Revision: 1928214
Log:
PDFBOX-6059: avoid ClassCastException
Modified:
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocumentCatalog.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocumentNameDictionary.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPage.java
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/common/PDObjectStream.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/filespecification/PDEmbeddedFile.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/function/PDFunction.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/function/PDFunctionType0.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/function/PDFunctionType3.java
Modified:
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java
==============================================================================
---
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java
Wed Sep 3 18:10:59 2025 (r1928213)
+++
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java
Wed Sep 3 18:25:05 2025 (r1928214)
@@ -1085,7 +1085,7 @@ public class PDFDebugger extends JFrame
{
if (stream.containsKey(COSName.RESOURCES))
{
- resourcesDic = (COSDictionary)
stream.getDictionaryObject(COSName.RESOURCES);
+ resourcesDic = stream.getCOSDictionary(COSName.RESOURCES);
}
isContentStream = true;
}
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocumentCatalog.java
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocumentCatalog.java
Wed Sep 3 18:10:59 2025 (r1928213)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocumentCatalog.java
Wed Sep 3 18:25:05 2025 (r1928214)
@@ -165,7 +165,7 @@ public class PDDocumentCatalog implement
public PDPageTree getPages()
{
// todo: cache me?
- return new
PDPageTree((COSDictionary)root.getDictionaryObject(COSName.PAGES), document);
+ return new PDPageTree(root.getCOSDictionary(COSName.PAGES), document);
}
/**
@@ -217,7 +217,7 @@ public class PDDocumentCatalog implement
*/
public List<PDThread> getThreads()
{
- COSArray array = (COSArray)root.getDictionaryObject(COSName.THREADS);
+ COSArray array = root.getCOSArray(COSName.THREADS);
if (array == null)
{
array = new COSArray();
@@ -304,7 +304,7 @@ public class PDDocumentCatalog implement
*/
public PDDocumentCatalogAdditionalActions getActions()
{
- COSDictionary addAction = (COSDictionary)
root.getDictionaryObject(COSName.AA);
+ COSDictionary addAction = root.getCOSDictionary(COSName.AA);
if (addAction == null)
{
addAction = new COSDictionary();
@@ -328,7 +328,7 @@ public class PDDocumentCatalog implement
*/
public PDDocumentNameDictionary getNames()
{
- COSDictionary names = (COSDictionary)
root.getDictionaryObject(COSName.NAMES);
+ COSDictionary names = root.getCOSDictionary(COSName.NAMES);
return names == null ? null : new PDDocumentNameDictionary(this,
names);
}
@@ -338,7 +338,7 @@ public class PDDocumentCatalog implement
public PDDocumentNameDestinationDictionary getDests()
{
PDDocumentNameDestinationDictionary nameDic = null;
- COSDictionary dests = (COSDictionary)
root.getDictionaryObject(COSName.DESTS);
+ COSDictionary dests = root.getCOSDictionary(COSName.DESTS);
if (dests != null)
{
nameDic = new PDDocumentNameDestinationDictionary(dests);
@@ -396,7 +396,7 @@ public class PDDocumentCatalog implement
*/
public PDMarkInfo getMarkInfo()
{
- COSDictionary dic =
(COSDictionary)root.getDictionaryObject(COSName.MARK_INFO);
+ COSDictionary dic = root.getCOSDictionary(COSName.MARK_INFO);
return dic == null ? null : new PDMarkInfo(dic);
}
@@ -418,7 +418,7 @@ public class PDDocumentCatalog implement
public List<PDOutputIntent> getOutputIntents()
{
List<PDOutputIntent> retval = new ArrayList<PDOutputIntent>();
- COSArray array =
(COSArray)root.getDictionaryObject(COSName.OUTPUT_INTENTS);
+ COSArray array = root.getCOSArray(COSName.OUTPUT_INTENTS);
if (array != null)
{
for (COSBase cosBase : array)
@@ -442,7 +442,7 @@ public class PDDocumentCatalog implement
*/
public void addOutputIntent(PDOutputIntent outputIntent)
{
- COSArray array =
(COSArray)root.getDictionaryObject(COSName.OUTPUT_INTENTS);
+ COSArray array = root.getCOSArray(COSName.OUTPUT_INTENTS);
if (array == null)
{
array = new COSArray();
@@ -541,7 +541,7 @@ public class PDDocumentCatalog implement
*/
public PDURIDictionary getURI()
{
- COSDictionary uri =
(COSDictionary)root.getDictionaryObject(COSName.URI);
+ COSDictionary uri = root.getCOSDictionary(COSName.URI);
return uri == null ? null : new PDURIDictionary(uri);
}
@@ -624,7 +624,7 @@ public class PDDocumentCatalog implement
*/
public PDPageLabels getPageLabels() throws IOException
{
- COSDictionary dict = (COSDictionary)
root.getDictionaryObject(COSName.PAGE_LABELS);
+ COSDictionary dict = root.getCOSDictionary(COSName.PAGE_LABELS);
return dict == null ? null : new PDPageLabels(document, dict);
}
@@ -645,7 +645,7 @@ public class PDDocumentCatalog implement
*/
public PDOptionalContentProperties getOCProperties()
{
- COSDictionary dict =
(COSDictionary)root.getDictionaryObject(COSName.OCPROPERTIES);
+ COSDictionary dict = root.getCOSDictionary(COSName.OCPROPERTIES);
return dict == null ? null : new PDOptionalContentProperties(dict);
}
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocumentNameDictionary.java
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocumentNameDictionary.java
Wed Sep 3 18:10:59 2025 (r1928213)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocumentNameDictionary.java
Wed Sep 3 18:25:05 2025 (r1928214)
@@ -84,13 +84,13 @@ public class PDDocumentNameDictionary im
{
PDDestinationNameTreeNode dests = null;
- COSDictionary dic = (COSDictionary)nameDictionary.getDictionaryObject(
COSName.DESTS );
+ COSDictionary dic = nameDictionary.getCOSDictionary(COSName.DESTS );
//The document catalog also contains the Dests entry sometimes
//so check there as well.
if( dic == null )
{
- dic = (COSDictionary)catalog.getCOSObject().getDictionaryObject(
COSName.DESTS );
+ dic = catalog.getCOSObject().getCOSDictionary( COSName.DESTS );
}
if( dic != null )
@@ -127,7 +127,7 @@ public class PDDocumentNameDictionary im
{
PDEmbeddedFilesNameTreeNode retval = null;
- COSDictionary dic = (COSDictionary)nameDictionary.getDictionaryObject(
COSName.EMBEDDED_FILES );
+ COSDictionary dic =
nameDictionary.getCOSDictionary(COSName.EMBEDDED_FILES);
if( dic != null )
{
@@ -158,7 +158,7 @@ public class PDDocumentNameDictionary im
{
PDJavascriptNameTreeNode retval = null;
- COSDictionary dic = (COSDictionary)
nameDictionary.getDictionaryObject(COSName.JAVA_SCRIPT);
+ COSDictionary dic =
nameDictionary.getCOSDictionary(COSName.JAVA_SCRIPT);
if( dic != null )
{
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPage.java
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPage.java
Wed Sep 3 18:10:59 2025 (r1928213)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPage.java
Wed Sep 3 18:25:05 2025 (r1928214)
@@ -532,7 +532,7 @@ public class PDPage implements COSObject
*/
public List<PDThreadBead> getThreadBeads()
{
- COSArray beads = (COSArray) page.getDictionaryObject(COSName.B);
+ COSArray beads = page.getCOSArray(COSName.B);
if (beads == null)
{
beads = new COSArray();
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:10:59 2025 (r1928213)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPageTree.java
Wed Sep 3 18:25:05 2025 (r1928214)
@@ -520,7 +520,7 @@ public class PDPageTree implements COSOb
// todo: re-balance tree? (or at least group new pages into tree nodes
of e.g. 20)
// add to parent's kids
- COSArray kids = (COSArray)root.getDictionaryObject(COSName.KIDS);
+ COSArray kids = root.getCOSArray(COSName.KIDS);
kids.add(node);
// update ancestor counts
@@ -546,8 +546,8 @@ public class PDPageTree implements COSOb
public void insertBefore(PDPage newPage, PDPage nextPage)
{
COSDictionary nextPageDict = nextPage.getCOSObject();
- COSDictionary parentDict = (COSDictionary)
nextPageDict.getDictionaryObject(COSName.PARENT);
- COSArray kids = (COSArray)
parentDict.getDictionaryObject(COSName.KIDS);
+ COSDictionary parentDict =
nextPageDict.getCOSDictionary(COSName.PARENT);
+ COSArray kids = parentDict.getCOSArray(COSName.KIDS);
boolean found = false;
for (int i = 0; i < kids.size(); ++i)
{
@@ -578,8 +578,8 @@ public class PDPageTree implements COSOb
public void insertAfter(PDPage newPage, PDPage prevPage)
{
COSDictionary prevPageDict = prevPage.getCOSObject();
- COSDictionary parentDict = (COSDictionary)
prevPageDict.getDictionaryObject(COSName.PARENT);
- COSArray kids = (COSArray)
parentDict.getDictionaryObject(COSName.KIDS);
+ COSDictionary parentDict =
prevPageDict.getCOSDictionary(COSName.PARENT);
+ COSArray kids = parentDict.getCOSArray(COSName.KIDS);
boolean found = false;
for (int i = 0; i < kids.size(); ++i)
{
@@ -605,7 +605,7 @@ public class PDPageTree implements COSOb
{
int cnt = parentDict.getInt(COSName.COUNT);
parentDict.setInt(COSName.COUNT, cnt + 1);
- parentDict = (COSDictionary)
parentDict.getDictionaryObject(COSName.PARENT);
+ parentDict = parentDict.getCOSDictionary(COSName.PARENT);
}
while (parentDict != null);
}
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDObjectStream.java
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDObjectStream.java
Wed Sep 3 18:10:59 2025 (r1928213)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDObjectStream.java
Wed Sep 3 18:25:05 2025 (r1928214)
@@ -115,7 +115,7 @@ public class PDObjectStream extends PDSt
public PDObjectStream getExtends()
{
PDObjectStream retval = null;
- COSStream stream = (COSStream)getCOSObject().getDictionaryObject(
COSName.EXTENDS );
+ COSStream stream = getCOSObject().getCOSStream(COSName.EXTENDS);
if( stream != null )
{
retval = new PDObjectStream( stream );
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/filespecification/PDEmbeddedFile.java
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/filespecification/PDEmbeddedFile.java
Wed Sep 3 18:10:59 2025 (r1928213)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/filespecification/PDEmbeddedFile.java
Wed Sep 3 18:25:05 2025 (r1928214)
@@ -182,7 +182,7 @@ public class PDEmbeddedFile extends PDSt
public String getMacSubtype()
{
String retval = null;
- COSDictionary params =
(COSDictionary)getCOSObject().getDictionaryObject( COSName.PARAMS );
+ COSDictionary params = getCOSObject().getCOSDictionary(COSName.PARAMS);
if( params != null )
{
retval = params.getEmbeddedString( "Mac", "Subtype" );
@@ -197,7 +197,7 @@ public class PDEmbeddedFile extends PDSt
*/
public void setMacSubtype( String macSubtype )
{
- COSDictionary params =
(COSDictionary)getCOSObject().getDictionaryObject( COSName.PARAMS );
+ COSDictionary params = getCOSObject().getCOSDictionary(COSName.PARAMS);
if( params == null && macSubtype != null )
{
params = new COSDictionary();
@@ -217,7 +217,7 @@ public class PDEmbeddedFile extends PDSt
public String getMacCreator()
{
String retval = null;
- COSDictionary params =
(COSDictionary)getCOSObject().getDictionaryObject( COSName.PARAMS );
+ COSDictionary params = getCOSObject().getCOSDictionary(COSName.PARAMS);
if( params != null )
{
retval = params.getEmbeddedString( "Mac", "Creator" );
@@ -232,7 +232,7 @@ public class PDEmbeddedFile extends PDSt
*/
public void setMacCreator( String macCreator )
{
- COSDictionary params =
(COSDictionary)getCOSObject().getDictionaryObject( COSName.PARAMS );
+ COSDictionary params = getCOSObject().getCOSDictionary(COSName.PARAMS);
if( params == null && macCreator != null )
{
params = new COSDictionary();
@@ -252,7 +252,7 @@ public class PDEmbeddedFile extends PDSt
public String getMacResFork()
{
String retval = null;
- COSDictionary params =
(COSDictionary)getCOSObject().getDictionaryObject( COSName.PARAMS );
+ COSDictionary params = getCOSObject().getCOSDictionary(COSName.PARAMS);
if( params != null )
{
retval = params.getEmbeddedString( "Mac", "ResFork" );
@@ -267,7 +267,7 @@ public class PDEmbeddedFile extends PDSt
*/
public void setMacResFork( String macResFork )
{
- COSDictionary params =
(COSDictionary)getCOSObject().getDictionaryObject( COSName.PARAMS );
+ COSDictionary params = getCOSObject().getCOSDictionary(COSName.PARAMS);
if( params == null && macResFork != null )
{
params = new COSDictionary();
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/function/PDFunction.java
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/function/PDFunction.java
Wed Sep 3 18:10:59 2025 (r1928213)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/function/PDFunction.java
Wed Sep 3 18:25:05 2025 (r1928214)
@@ -282,7 +282,7 @@ public abstract class PDFunction impleme
{
if (range == null)
{
- range = (COSArray)
getCOSObject().getDictionaryObject(COSName.RANGE);
+ range = getCOSObject().getCOSArray(COSName.RANGE);
}
return range;
}
@@ -296,7 +296,7 @@ public abstract class PDFunction impleme
{
if (domain == null)
{
- domain = (COSArray)
getCOSObject().getDictionaryObject(COSName.DOMAIN);
+ domain = getCOSObject().getCOSArray(COSName.DOMAIN);
}
return domain;
}
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/function/PDFunctionType0.java
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/function/PDFunctionType0.java
Wed Sep 3 18:10:59 2025 (r1928213)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/function/PDFunctionType0.java
Wed Sep 3 18:25:05 2025 (r1928214)
@@ -96,7 +96,7 @@ public class PDFunctionType0 extends PDF
{
if (size == null)
{
- size = (COSArray) getCOSObject().getDictionaryObject(COSName.SIZE);
+ size = getCOSObject().getCOSArray(COSName.SIZE);
}
return size;
}
@@ -145,7 +145,7 @@ public class PDFunctionType0 extends PDF
{
if (encode == null)
{
- encode = (COSArray)
getCOSObject().getDictionaryObject(COSName.ENCODE);
+ encode = getCOSObject().getCOSArray(COSName.ENCODE);
// the default value is [0 (size[0]-1) 0 (size[1]-1) ...]
if (encode == null)
{
@@ -171,7 +171,7 @@ public class PDFunctionType0 extends PDF
{
if (decode == null)
{
- decode = (COSArray)
getCOSObject().getDictionaryObject(COSName.DECODE);
+ decode = getCOSObject().getCOSArray(COSName.DECODE);
// if decode is null, the default values are the range values
if (decode == null)
{
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/function/PDFunctionType3.java
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/function/PDFunctionType3.java
Wed Sep 3 18:10:59 2025 (r1928213)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/function/PDFunctionType3.java
Wed Sep 3 18:25:05 2025 (r1928214)
@@ -134,7 +134,7 @@ public class PDFunctionType3 extends PDF
{
if (functions == null)
{
- functions = (COSArray)(getCOSObject().getDictionaryObject(
COSName.FUNCTIONS ));
+ functions = getCOSObject().getCOSArray(COSName.FUNCTIONS);
}
return functions;
}
@@ -148,7 +148,7 @@ public class PDFunctionType3 extends PDF
{
if (bounds == null)
{
- bounds = (COSArray)(getCOSObject().getDictionaryObject(
COSName.BOUNDS ));
+ bounds = getCOSObject().getCOSArray(COSName.BOUNDS);
}
return bounds;
}
@@ -162,7 +162,7 @@ public class PDFunctionType3 extends PDF
{
if (encode == null)
{
- encode = (COSArray)(getCOSObject().getDictionaryObject(
COSName.ENCODE ));
+ encode = getCOSObject().getCOSArray(COSName.ENCODE);
}
return encode;
}