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 2015/07/29 18:48:46 UTC

svn commit: r1693316 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDShading.java

Author: tilman
Date: Wed Jul 29 16:48:45 2015
New Revision: 1693316

URL: http://svn.apache.org/r1693316
Log:
PDFBOX-2909: throw IOException if /Function element not dictionary or array

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDShading.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDShading.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDShading.java?rev=1693316&r1=1693315&r2=1693316&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDShading.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDShading.java Wed Jul 29 16:48:45 2015
@@ -335,8 +335,8 @@ public abstract class PDShading implemen
     /**
      * Provide the function(s) of the shading dictionary as array.
      *
-     * @return an array containing the function(s)
-     * @throws IOException if something went wrong
+     * @return an array containing the function(s).
+     * @throws IOException if we were unable to create a function.
      */
     private PDFunction[] getFunctionsArray() throws IOException
     {
@@ -348,7 +348,7 @@ public abstract class PDShading implemen
                 functionArray = new PDFunction[1];
                 functionArray[0] = PDFunction.create(functionObject);
             }
-            else
+            else if (functionObject instanceof COSArray)
             {
                 COSArray functionCOSArray = (COSArray) functionObject;
                 int numberOfFunctions = functionCOSArray.size();
@@ -358,6 +358,10 @@ public abstract class PDShading implemen
                     functionArray[i] = PDFunction.create(functionCOSArray.get(i));
                 }
             }
+            else
+            {
+                throw new IOException("mandatory /Function element must be a dictionary or an array");
+            }
         }
         return functionArray;
     }