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;