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 2017/08/02 15:49:13 UTC

svn commit: r1803836 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/function/PDFunction.java

Author: tilman
Date: Wed Aug  2 15:49:13 2017
New Revision: 1803836

URL: http://svn.apache.org/viewvc?rev=1803836&view=rev
Log:
PDFBOX-2852: avoid classcastexception

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/function/PDFunction.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/function/PDFunction.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/function/PDFunction.java?rev=1803836&r1=1803835&r2=1803836&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/function/PDFunction.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/function/PDFunction.java Wed Aug  2 15:49:13 2017
@@ -117,16 +117,18 @@ public abstract class PDFunction impleme
         {
             return new PDFunctionTypeIdentity(null);
         }
-
-        COSDictionary functionDictionary;
+        
+        COSBase base = function;
         if (function instanceof COSObject)
         {
-            functionDictionary = (COSDictionary) ((COSObject) function).getObject();
+            base = function.getCOSObject();
         }
-        else
+        if (!(base instanceof COSDictionary))
         {
-            functionDictionary = (COSDictionary) function;
+            throw new IOException("Error: Function must be a Dictionary, but is " +
+                    function.getClass().getSimpleName());
         }
+        COSDictionary functionDictionary = (COSDictionary) base;
         int functionType = functionDictionary.getInt(COSName.FUNCTION_TYPE);
         switch (functionType)
         {