Author: lehmi
Date: Tue Sep 20 17:47:44 2011
New Revision: 1173275
URL: http://svn.apache.org/viewvc?rev=1173275&view=rev
Log:
PDFBOX-1088: added a patch to avoid a ClassCastException and a new test case as
proposed by Maruan Sahyoun
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/TestPDDocumentCatalog.java
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java
URL:
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java?rev=1173275&r1=1173274&r2=1173275&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java
(original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java
Tue Sep 20 17:47:44 2011
@@ -154,12 +154,13 @@ public class PDDocument implements Pagea
private void processListOfPageReferences(List<Object> pageNodes)
{
- for(int i=0; i < pageNodes.size(); ++i)
+ int numberOfNodes = pageNodes.size();
+ for(int i=0; i < numberOfNodes; ++i)
{
Object pageOrArray = pageNodes.get(i);
if(pageOrArray instanceof PDPage)
{
- List pageArray =
((((PDPage)pageOrArray).getParent()).getKids());
+ COSArray pageArray =
((COSArrayList)(((PDPage)pageOrArray).getParent()).getKids()).toList();
parseCatalogObject((COSObject)pageArray.get(i));
}
else if(pageOrArray instanceof PDPageNode)
Modified:
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/TestPDDocumentCatalog.java
URL:
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/TestPDDocumentCatalog.java?rev=1173275&r1=1173274&r2=1173275&view=diff
==============================================================================
---
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/TestPDDocumentCatalog.java
(original)
+++
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/TestPDDocumentCatalog.java
Tue Sep 20 17:47:44 2011
@@ -86,4 +86,22 @@ public class TestPDDocumentCatalog exten
doc.close();
}
}
+
+ /**
+ * Test case for
+ * <a href="https://issues.apache.org/jira/browse/PDFBOX-1088"
+ * >PDFBOX-1088</a> - Class PDDocument Method getPageMap returns a
ClassCastException
+ */
+ public void testPageMap() throws Exception {
+ PDDocument doc = null;
+ try {
+ doc =
PDDocument.load(TestPDDocumentCatalog.class.getResource("test.unc.pdf"));
+ assertEquals(4, doc.getPageMap().size());
+ int pageNum = doc.getPageMap().get("14,0");
+ assertEquals(1, pageNum);
+ } finally {
+ if(doc != null)
+ doc.close();
+ }
+ }
}