You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2012/05/18 16:53:13 UTC

svn commit: r1340117 - in /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject: PDPixelMap.java PDXObjectImage.java

Author: lehmi
Date: Fri May 18 14:53:12 2012
New Revision: 1340117

URL: http://svn.apache.org/viewvc?rev=1340117&view=rev
Log:
PDFBOX-892: avoid ClassCastException in PDXObjectImage#getMask by returning a COSBase instead of COSArray

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDPixelMap.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObjectImage.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDPixelMap.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDPixelMap.java?rev=1340117&r1=1340116&r2=1340117&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDPixelMap.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDPixelMap.java Fri May 18 14:53:12 2012
@@ -210,7 +210,7 @@ public class PDPixelMap extends PDXObjec
                 int size = Math.min(numberOfColorValues-1, highValue);
                 byte[] index = csIndexed.getLookupData();
                 boolean hasAlpha = baseColorModel.hasAlpha();
-                COSArray maskArray = getMask();
+                COSBase maskArray = getMask();
                 if( baseColorModel.getTransferType() != DataBuffer.TYPE_BYTE )
                 {
                     throw new IOException( "Not implemented" );
@@ -235,9 +235,9 @@ public class PDPixelMap extends PDXObjec
                     }
                     bufferIndex += numberOfComponents;
                 }
-                if (maskArray != null)
+                if (maskArray != null && maskArray instanceof COSArray)
                 {
-                    cm = new IndexColorModel(bpc, size+1, colorValues, 0, hasAlpha, maskArray.getInt(0));
+                    cm = new IndexColorModel(bpc, size+1, colorValues, 0, hasAlpha, ((COSArray)maskArray).getInt(0));
                 }
                 else
                 {

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObjectImage.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObjectImage.java?rev=1340117&r1=1340116&r2=1340117&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObjectImage.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObjectImage.java Fri May 18 14:53:12 2012
@@ -354,15 +354,16 @@ public abstract class PDXObjectImage ext
     /**
      * Returns the optional mask of a XObjectImage if there is one.
      *
-     * @return The mask as COSArray otherwise null.
+     * @return The mask otherwise null.
      */
-    public COSArray getMask()
+    public COSBase getMask()
     {
         COSBase mask = getCOSStream().getDictionaryObject(COSName.MASK);
         if (mask != null)
         {
-            return (COSArray)mask;
+            return mask;
         }
         return null;
     }
+
 }