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 2011/07/23 17:16:18 UTC
svn commit: r1150121 - in
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox:
filter/JBIG2Filter.java pdmodel/graphics/xobject/PDPixelMap.java
Author: lehmi
Date: Sat Jul 23 15:16:17 2011
New Revision: 1150121
URL: http://svn.apache.org/viewvc?rev=1150121&view=rev
Log:
PDFBOX-1067: added an error message if the JBIG2 plugin couldn't be found or something went wrong when decoding the JBIG2 decoded datastream
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/JBIG2Filter.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/filter/JBIG2Filter.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/JBIG2Filter.java?rev=1150121&r1=1150120&r2=1150121&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/JBIG2Filter.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/JBIG2Filter.java Sat Jul 23 15:16:17 2011
@@ -22,8 +22,10 @@ import java.awt.image.DataBufferByte;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import java.util.Iterator;
import javax.imageio.ImageIO;
+import javax.imageio.ImageReader;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -50,8 +52,8 @@ public class JBIG2Filter implements Filt
public void decode( InputStream compressedData, OutputStream result, COSDictionary options, int filterIndex )
throws IOException
{
- BufferedImage bi = ImageIO.read( compressedData );
- if ( bi != null )
+ BufferedImage bi = ImageIO.read(compressedData);
+ if ( bi != null )
{
DataBuffer dBuf = bi.getData().getDataBuffer();
if ( dBuf.getDataType() == DataBuffer.TYPE_BYTE )
@@ -63,6 +65,18 @@ public class JBIG2Filter implements Filt
log.error( "Image data buffer not of type byte but type " + dBuf.getDataType() );
}
}
+ else
+ {
+ Iterator<ImageReader> reader = ImageIO.getImageReadersByFormatName("JBIG2");
+ if (!reader.hasNext())
+ {
+ log.error( "Can't find an ImageIO plugin to decode the JBIG2 encoded datastream.");
+ }
+ else
+ {
+ log.error( "Something went wrong when decoding the JBIG2 encoded datastream.");
+ }
+ }
}
/**
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=1150121&r1=1150120&r2=1150121&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 Sat Jul 23 15:16:17 2011
@@ -135,7 +135,11 @@ public class PDPixelMap extends PDXObjec
int bpc = getBitsPerComponent();
byte[] array = getPDStream().getByteArray();
-
+ if (array.length == 0)
+ {
+ log.error("Something went wrong ... the pixelmap doesn't contain any data.");
+ return null;
+ }
// Get the ColorModel right
PDColorSpace colorspace = getColorSpace();
if (colorspace == null)