You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2018/02/06 18:27:36 UTC

svn commit: r1823375 - /pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPage.java

Author: tilman
Date: Tue Feb  6 18:27:36 2018
New Revision: 1823375

URL: http://svn.apache.org/viewvc?rev=1823375&view=rev
Log:
PDFBOX-4071: avoid ClassCastException

Modified:
    pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPage.java

Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPage.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPage.java?rev=1823375&r1=1823374&r2=1823375&view=diff
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPage.java (original)
+++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPage.java Tue Feb  6 18:27:36 2018
@@ -270,10 +270,10 @@ public class PDPage implements COSObject
     {
         if (mediaBox == null)
         {
-            COSArray array = (COSArray) PDPageTree.getInheritableAttribute(page, COSName.MEDIA_BOX);
-            if (array != null)
+            COSBase base = PDPageTree.getInheritableAttribute(page, COSName.MEDIA_BOX);
+            if (base instanceof COSArray)
             {
-                mediaBox = new PDRectangle(array);
+                mediaBox = new PDRectangle((COSArray) base);
             }
         }
         if (mediaBox == null)
@@ -309,10 +309,10 @@ public class PDPage implements COSObject
      */
     public PDRectangle getCropBox()
     {
-        COSArray array = (COSArray) PDPageTree.getInheritableAttribute(page, COSName.CROP_BOX);
-        if (array != null)
+        COSBase base = PDPageTree.getInheritableAttribute(page, COSName.CROP_BOX);
+        if (base instanceof COSArray)
         {
-            return clipToMediaBox(new PDRectangle(array));
+            return clipToMediaBox(new PDRectangle((COSArray) base));
         }
         else
         {
@@ -346,17 +346,15 @@ public class PDPage implements COSObject
      */
     public PDRectangle getBleedBox()
     {
-        PDRectangle retval;
-        COSArray array = (COSArray) page.getDictionaryObject(COSName.BLEED_BOX);
-        if (array != null)
+        COSBase base = page.getDictionaryObject(COSName.BLEED_BOX);
+        if (base instanceof COSArray)
         {
-            retval = clipToMediaBox(new PDRectangle(array));
+            return clipToMediaBox(new PDRectangle((COSArray) base));
         }
         else
         {
-            retval = getCropBox();
+            return getCropBox();
         }
-        return retval;
     }
 
     /**
@@ -384,17 +382,15 @@ public class PDPage implements COSObject
      */
     public PDRectangle getTrimBox()
     {
-        PDRectangle retval;
-        COSArray array = (COSArray) page.getDictionaryObject(COSName.TRIM_BOX);
-        if (array != null)
+        COSBase base = page.getDictionaryObject(COSName.TRIM_BOX);
+        if (base instanceof COSArray)
         {
-            retval = clipToMediaBox(new PDRectangle(array));
+            return clipToMediaBox(new PDRectangle((COSArray) base));
         }
         else
         {
-            retval = getCropBox();
+            return getCropBox();
         }
-        return retval;
     }
 
     /**
@@ -423,17 +419,15 @@ public class PDPage implements COSObject
      */
     public PDRectangle getArtBox()
     {
-        PDRectangle retval;
-        COSArray array = (COSArray) page.getDictionaryObject(COSName.ART_BOX);
-        if (array != null)
+        COSBase base = page.getDictionaryObject(COSName.ART_BOX);
+        if (base instanceof COSArray)
         {
-            retval = clipToMediaBox(new PDRectangle(array));
+            return clipToMediaBox(new PDRectangle((COSArray) base));
         }
         else
         {
-            retval = getCropBox();
+            return getCropBox();
         }
-        return retval;
     }
 
     /**
@@ -541,12 +535,12 @@ public class PDPage implements COSObject
         List<PDThreadBead> pdObjects = new ArrayList<PDThreadBead>();
         for (int i = 0; i < beads.size(); i++)
         {
-            COSDictionary beadDic = (COSDictionary) beads.getObject(i);
+            COSBase base = beads.getObject(i);
             PDThreadBead bead = null;
             // in some cases the bead is null
-            if (beadDic != null)
+            if (base instanceof COSDictionary)
             {
-                bead = new PDThreadBead(beadDic);
+                bead = new PDThreadBead((COSDictionary) base);
             }
             pdObjects.add(bead);
         }
@@ -572,10 +566,10 @@ public class PDPage implements COSObject
     public PDMetadata getMetadata()
     {
         PDMetadata retval = null;
-        COSStream stream = (COSStream) page.getDictionaryObject(COSName.METADATA);
-        if (stream != null)
+        COSBase base = page.getDictionaryObject(COSName.METADATA);
+        if (base instanceof COSStream)
         {
-            retval = new PDMetadata(stream);
+            retval = new PDMetadata((COSStream) base);
         }
         return retval;
     }
@@ -597,8 +591,13 @@ public class PDPage implements COSObject
      */
     public PDPageAdditionalActions getActions()
     {
-        COSDictionary addAct = (COSDictionary) page.getDictionaryObject(COSName.AA);
-        if (addAct == null)
+        COSDictionary addAct;
+        COSBase base = page.getDictionaryObject(COSName.AA);
+        if (base instanceof COSDictionary)
+        {
+            addAct = (COSDictionary) base;
+        }
+        else
         {
             addAct = new COSDictionary();
             page.setItem(COSName.AA, addAct);
@@ -621,8 +620,8 @@ public class PDPage implements COSObject
      */
     public PDTransition getTransition()
     {
-        COSDictionary transitionDictionary = (COSDictionary) page.getDictionaryObject(COSName.TRANS);
-        return transitionDictionary == null ? null : new PDTransition(transitionDictionary);
+        COSBase base = page.getDictionaryObject(COSName.TRANS);
+        return base instanceof COSDictionary ? new PDTransition((COSDictionary) base) : null;
     }
 
     /**