Author: lehmi
Date: Sun Mar 28 14:18:22 2010
New Revision: 928402

URL: http://svn.apache.org/viewvc?rev=928402&view=rev
Log:
PDFBOX-574: avoid ArrayOutOfBoundsException during image extraction/rendering. 
Pacth by Ian Kaplan (kaplan4 at llnl dot gov)

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

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSName.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSName.java?rev=928402&r1=928401&r2=928402&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSName.java 
(original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSName.java Sun 
Mar 28 14:18:22 2010
@@ -557,9 +557,13 @@ public final class COSName extends COSBa
      */
     public static final COSName PG = new COSName("Pg");
     /**
-    * A common COSName value.
-    */
-    public static final COSName PREV = new COSName( "Prev" );
+     * A common COSName value.
+     */
+     public static final COSName PREDICTOR = new COSName( "Predictor" );
+     /**
+      * A common COSName value.
+      */
+      public static final COSName PREV = new COSName( "Prev" );
 
     /** "ProcSet" */
     public static final COSName PROC_SET = new COSName( "ProcSet" );

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=928402&r1=928401&r2=928402&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
 Sun Mar 28 14:18:22 2010
@@ -179,13 +179,9 @@ public class PDPixelMap extends PDXObjec
                 filter.setWidth(width);
                 filter.setHeight(height);
                 filter.setBpp((bpc * 3) / 8);
-                filter.decode(array, bufferData);
-            }
-            else
-            {
-                System.arraycopy( array, 0,bufferData, 0, 
-                        (array.length<bufferData.length?array.length: 
bufferData.length) );
             }
+            System.arraycopy( array, 0,bufferData, 0, 
+                    (array.length<bufferData.length?array.length: 
bufferData.length) );
             image = new BufferedImage(cm, raster, false, null);
             
             return image;
@@ -194,7 +190,7 @@ public class PDPixelMap extends PDXObjec
         {
             log.error(exception, exception);
             //A NULL return is caught in pagedrawer.Invoke.process() so don't 
re-throw.
-            //Returning the NULL falls through to Phlip Koch's TODO section.
+            //Returning the NULL falls through to Phillip Koch's TODO section.
             return null;
         }
     }
@@ -227,7 +223,7 @@ public class PDPixelMap extends PDXObjec
      */
     public COSDictionary getDecodeParams()
     {
-        COSBase decodeParms = 
getCOSStream().getDictionaryObject("DecodeParms");
+        COSBase decodeParms = 
getCOSStream().getDictionaryObject(COSName.DECODE_PARMS);
         if (decodeParms != null)
         {
             if (decodeParms instanceof COSDictionary)
@@ -270,7 +266,7 @@ public class PDPixelMap extends PDXObjec
         COSDictionary decodeParms = getDecodeParams();
         if (decodeParms != null)
         {
-            int i = decodeParms.getInt("Predictor");
+            int i = decodeParms.getInt(COSName.PREDICTOR);
             if (i != -1)
             {
                 return i;


Reply via email to