Bug 49216 - NullPointerException in DataBufferInt.getBankData()
Summary: NullPointerException in DataBufferInt.getBankData()
Status: NEW
Alias: None
Product: Batik - Now in Jira
Classification: Unclassified
Component: SVG Rasterizer (show other bugs)
Version: 1.7
Hardware: PC Mac OS X 10.5
: P2 normal
Target Milestone: ---
Assignee: Batik Developer's Mailing list
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-04-28 23:17 UTC by chris
Modified: 2010-05-09 13:25 UTC (History)
0 users



Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description chris 2010-04-28 23:17:10 UTC
I'm using the Transcoder API to rasterize an SVG into JPEG.  I'm getting the following NPE, followed by a complete crash of the Java VM (there's two stack traces here - I'm not sure if it happened twice on two separate images or if these are related somehow):

java.lang.NullPointerException
	at java.awt.image.DataBufferInt.getBankData(DataBufferInt.java:162)
	at org.apache.batik.ext.awt.image.rendered.PadRed$ZeroRecter_INT_PACK.<init>(PadRed.java:156)
	at org.apache.batik.ext.awt.image.rendered.PadRed$ZeroRecter.getZeroRecter(PadRed.java:123)
	at org.apache.batik.ext.awt.image.rendered.PadRed.handleZero(PadRed.java:193)
	at org.apache.batik.ext.awt.image.rendered.PadRed.copyData(PadRed.java:92)
	at org.apache.batik.ext.awt.image.rendered.ColorMatrixRed.copyData(ColorMatrixRed.java:116)
	at org.apache.batik.ext.awt.image.rendered.FormatRed.copyData(FormatRed.java:116)
	at org.apache.batik.ext.awt.image.rendered.AbstractRed.getData(AbstractRed.java:526)
	at org.apache.batik.ext.awt.image.GraphicsUtil.drawImage(GraphicsUtil.java:264)
	at org.apache.batik.ext.awt.image.GraphicsUtil.drawImage(GraphicsUtil.java:455)
	at org.apache.batik.ext.awt.image.renderable.PadRable8Bit.paintRable(PadRable8Bit.java:135)
	at org.apache.batik.ext.awt.image.GraphicsUtil.drawImage(GraphicsUtil.java:440)
	at org.apache.batik.ext.awt.image.renderable.PadRable8Bit.paintRable(PadRable8Bit.java:135)
	at org.apache.batik.ext.awt.image.GraphicsUtil.drawImage(GraphicsUtil.java:440)
	at org.apache.batik.ext.awt.image.renderable.FilterChainRable8Bit.paintRable(FilterChainRable8Bit.java:251)
	at org.apache.batik.ext.awt.image.GraphicsUtil.drawImage(GraphicsUtil.java:440)
	at org.apache.batik.gvt.AbstractGraphicsNode.paint(AbstractGraphicsNode.java:549)
	at org.apache.batik.gvt.CompositeGraphicsNode.primitivePaint(CompositeGraphicsNode.java:165)
	at org.apache.batik.gvt.AbstractGraphicsNode.paint(AbstractGraphicsNode.java:509)
	at org.apache.batik.gvt.CompositeGraphicsNode.primitivePaint(CompositeGraphicsNode.java:165)
	at org.apache.batik.gvt.filter.GraphicsNodeRed8Bit.genRect(GraphicsNodeRed8Bit.java:140)
	at org.apache.batik.gvt.filter.GraphicsNodeRed8Bit.copyData(GraphicsNodeRed8Bit.java:116)
	at org.apache.batik.ext.awt.image.rendered.PadRed.copyData(PadRed.java:88)
	at org.apache.batik.ext.awt.image.rendered.AbstractRed.getData(AbstractRed.java:526)
	at org.apache.batik.ext.awt.image.rendered.Any2LumRed.copyData(Any2LumRed.java:71)
	at org.apache.batik.ext.awt.image.rendered.AbstractRed.getData(AbstractRed.java:526)
	at org.apache.batik.ext.awt.image.rendered.FilterAsAlphaRed.copyData(FilterAsAlphaRed.java:83)
	at org.apache.batik.ext.awt.image.rendered.AbstractRed.getData(AbstractRed.java:526)
	at org.apache.batik.ext.awt.image.rendered.MultiplyAlphaRed.INT_PACK_BYTE_COMP_Impl(MultiplyAlphaRed.java:107)
	at org.apache.batik.ext.awt.image.rendered.MultiplyAlphaRed.copyData(MultiplyAlphaRed.java:183)
	at org.apache.batik.ext.awt.image.rendered.Any2sRGBRed.copyData(Any2sRGBRed.java:166)
	at org.apache.batik.ext.awt.image.rendered.FormatRed.copyData(FormatRed.java:116)
	at org.apache.batik.ext.awt.image.GraphicsUtil.drawImage(GraphicsUtil.java:347)
	at org.apache.batik.ext.awt.image.GraphicsUtil.drawImage(GraphicsUtil.java:455)
	at org.apache.batik.gvt.AbstractGraphicsNode.paint(AbstractGraphicsNode.java:549)
	at org.apache.batik.gvt.CompositeGraphicsNode.primitivePaint(CompositeGraphicsNode.java:165)
	at org.apache.batik.gvt.AbstractGraphicsNode.paint(AbstractGraphicsNode.java:509)
	at org.apache.batik.gvt.CompositeGraphicsNode.primitivePaint(CompositeGraphicsNode.java:165)
	at org.apache.batik.gvt.AbstractGraphicsNode.paint(AbstractGraphicsNode.java:509)
	at org.apache.batik.gvt.CompositeGraphicsNode.primitivePaint(CompositeGraphicsNode.java:165)
	at org.apache.batik.gvt.AbstractGraphicsNode.paint(AbstractGraphicsNode.java:509)
	at org.apache.batik.gvt.CompositeGraphicsNode.primitivePaint(CompositeGraphicsNode.java:165)
	at org.apache.batik.gvt.AbstractGraphicsNode.paint(AbstractGraphicsNode.java:509)
	at org.apache.batik.gvt.CompositeGraphicsNode.primitivePaint(CompositeGraphicsNode.java:165)
	at org.apache.batik.gvt.CanvasGraphicsNode.primitivePaint(CanvasGraphicsNode.java:159)
	at org.apache.batik.gvt.AbstractGraphicsNode.paint(AbstractGraphicsNode.java:509)
	at org.apache.batik.gvt.CompositeGraphicsNode.primitivePaint(CompositeGraphicsNode.java:165)
	at org.apache.batik.gvt.AbstractGraphicsNode.paint(AbstractGraphicsNode.java:509)
	at org.apache.batik.gvt.renderer.MacRenderer.repaint(MacRenderer.java:361)
	at org.apache.batik.gvt.renderer.MacRenderer.repaint(MacRenderer.java:291)
	at org.apache.batik.transcoder.image.ImageTranscoder.transcode(ImageTranscoder.java:111)
	at org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(XMLAbstractTranscoder.java:142)
	at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:156)
	at com.dji.converter.epub.constructor.ImageConstructor.convertVectorImage(ImageConstructor.java:305)
	at com.dji.converter.epub.constructor.ImageConstructor.createImage(ImageConstructor.java:109)
	at com.dji.converter.epub.constructor.ImageConstructor.handleStartEvent(ImageConstructor.java:80)
	at com.dji.converter.epub.ePubConverter.processEvents(ePubConverter.java:334)
	at com.dji.converter.epub.ePubConverter.convert(ePubConverter.java:202)
	at com.dji.converter.ConverterBase.run(ConverterBase.java:91)
	at java.lang.Thread.run(Thread.java:613)
java.lang.NullPointerException
	at java.awt.image.DataBufferInt.getBankData(DataBufferInt.java:162)
	at org.apache.batik.ext.awt.image.rendered.PadRed$ZeroRecter_INT_PACK.<init>(PadRed.java:156)
	at org.apache.batik.ext.awt.image.rendered.PadRed$ZeroRecter.getZeroRecter(PadRed.java:123)
	at org.apache.batik.ext.awt.image.rendered.PadRed.handleZero(PadRed.java:193)
	at org.apache.batik.ext.awt.image.rendered.PadRed.copyData(PadRed.java:92)
	at org.apache.batik.ext.awt.image.rendered.ColorMatrixRed.copyData(ColorMatrixRed.java:116)
	at org.apache.batik.ext.awt.image.rendered.FormatRed.copyData(FormatRed.java:116)
	at org.apache.batik.ext.awt.image.rendered.AbstractRed.getData(AbstractRed.java:526)
	at org.apache.batik.ext.awt.image.GraphicsUtil.drawImage(GraphicsUtil.java:264)
	at org.apache.batik.ext.awt.image.GraphicsUtil.drawImage(GraphicsUtil.java:455)
	at org.apache.batik.ext.awt.image.renderable.PadRable8Bit.paintRable(PadRable8Bit.java:135)
	at org.apache.batik.ext.awt.image.GraphicsUtil.drawImage(GraphicsUtil.java:440)
	at org.apache.batik.ext.awt.image.renderable.PadRable8Bit.paintRable(PadRable8Bit.java:135)
	at org.apache.batik.ext.awt.image.GraphicsUtil.drawImage(GraphicsUtil.java:440)
	at org.apache.batik.ext.awt.image.renderable.FilterChainRable8Bit.paintRable(FilterChainRable8Bit.java:251)
	at org.apache.batik.ext.awt.image.GraphicsUtil.drawImage(GraphicsUtil.java:440)
	at org.apache.batik.gvt.AbstractGraphicsNode.paint(AbstractGraphicsNode.java:549)
	at org.apache.batik.gvt.CompositeGraphicsNode.primitivePaint(CompositeGraphicsNode.java:165)
	at org.apache.batik.gvt.AbstractGraphicsNode.paint(AbstractGraphicsNode.java:509)
	at org.apache.batik.gvt.CompositeGraphicsNode.primitivePaint(CompositeGraphicsNode.java:165)
	at org.apache.batik.gvt.filter.GraphicsNodeRed8Bit.genRect(GraphicsNodeRed8Bit.java:140)
	at org.apache.batik.gvt.filter.GraphicsNodeRed8Bit.copyData(GraphicsNodeRed8Bit.java:116)
	at org.apache.batik.ext.awt.image.rendered.PadRed.copyData(PadRed.java:88)
	at org.apache.batik.ext.awt.image.rendered.AbstractRed.getData(AbstractRed.java:526)
	at org.apache.batik.ext.awt.image.rendered.Any2LumRed.copyData(Any2LumRed.java:71)
	at org.apache.batik.ext.awt.image.rendered.AbstractRed.getData(AbstractRed.java:526)
	at org.apache.batik.ext.awt.image.rendered.FilterAsAlphaRed.copyData(FilterAsAlphaRed.java:83)
	at org.apache.batik.ext.awt.image.rendered.AbstractRed.getData(AbstractRed.java:526)
	at org.apache.batik.ext.awt.image.rendered.MultiplyAlphaRed.INT_PACK_BYTE_COMP_Impl(MultiplyAlphaRed.java:107)
	at org.apache.batik.ext.awt.image.rendered.MultiplyAlphaRed.copyData(MultiplyAlphaRed.java:183)
	at org.apache.batik.ext.awt.image.rendered.Any2sRGBRed.copyData(Any2sRGBRed.java:166)
	at org.apache.batik.ext.awt.image.rendered.FormatRed.copyData(FormatRed.java:116)
	at org.apache.batik.ext.awt.image.GraphicsUtil.drawImage(GraphicsUtil.java:347)
	at org.apache.batik.ext.awt.image.GraphicsUtil.drawImage(GraphicsUtil.java:455)
	at org.apache.batik.gvt.AbstractGraphicsNode.paint(AbstractGraphicsNode.java:549)
	at org.apache.batik.gvt.CompositeGraphicsNode.primitivePaint(CompositeGraphicsNode.java:165)
	at org.apache.batik.gvt.AbstractGraphicsNode.paint(AbstractGraphicsNode.java:509)
	at org.apache.batik.gvt.CompositeGraphicsNode.primitivePaint(CompositeGraphicsNode.java:165)
	at org.apache.batik.gvt.AbstractGraphicsNode.paint(AbstractGraphicsNode.java:509)
	at org.apache.batik.gvt.CompositeGraphicsNode.primitivePaint(CompositeGraphicsNode.java:165)
	at org.apache.batik.gvt.AbstractGraphicsNode.paint(AbstractGraphicsNode.java:509)
	at org.apache.batik.gvt.CompositeGraphicsNode.primitivePaint(CompositeGraphicsNode.java:165)
	at org.apache.batik.gvt.AbstractGraphicsNode.paint(AbstractGraphicsNode.java:509)
	at org.apache.batik.gvt.CompositeGraphicsNode.primitivePaint(CompositeGraphicsNode.java:165)
	at org.apache.batik.gvt.CanvasGraphicsNode.primitivePaint(CanvasGraphicsNode.java:159)
	at org.apache.batik.gvt.AbstractGraphicsNode.paint(AbstractGraphicsNode.java:509)
	at org.apache.batik.gvt.CompositeGraphicsNode.primitivePaint(CompositeGraphicsNode.java:165)
	at org.apache.batik.gvt.AbstractGraphicsNode.paint(AbstractGraphicsNode.java:509)
	at org.apache.batik.gvt.renderer.MacRenderer.repaint(MacRenderer.java:361)
	at org.apache.batik.gvt.renderer.MacRenderer.repaint(MacRenderer.java:291)
	at org.apache.batik.transcoder.image.ImageTranscoder.transcode(ImageTranscoder.java:111)
	at org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(XMLAbstractTranscoder.java:142)
	at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:156)
	at com.dji.converter.epub.constructor.ImageConstructor.convertVectorImage(ImageConstructor.java:305)
	at com.dji.converter.epub.constructor.ImageConstructor.createImage(ImageConstructor.java:109)
	at com.dji.converter.epub.constructor.ImageConstructor.handleStartEvent(ImageConstructor.java:80)
	at com.dji.converter.epub.ePubConverter.processEvents(ePubConverter.java:334)
	at com.dji.converter.epub.ePubConverter.convert(ePubConverter.java:202)
	at com.dji.converter.ConverterBase.run(ConverterBase.java:91)
	at java.lang.Thread.run(Thread.java:613)
Invalid memory access of location 0x128 eip=0x4dcd8a


The code in question is pretty straightforward, but one odd thing did happen: I never hit the catch(Exception e) clause, which I should have done for an NPE:

try {
    	    String parser = XMLResourceDescriptor.getXMLParserClassName();
    	    SAXSVGDocumentFactory f = new SAXSVGDocumentFactory(parser);
	        String svgURI = imageSourcePath.toURL().toString();
    	    Document doc = f.createDocument(svgURI);

    	    // Get the root element (the 'svg' element).
    	    final Element svgRoot = doc.getDocumentElement();

    	    // Set the width and height attributes on the root 'svg' element.
    	    final String strWidth = svgRoot.getAttributeNS(null, "width");
    	    if (strWidth != null) {
    	    	actualWidth = Float.parseFloat(strWidth);
    	    }
    	    final String strHeight = svgRoot.getAttributeNS(null, "height");
    	    if (strHeight != null) {
    	    	actualHeight = Float.parseFloat(strHeight);
    	    }
    	    
            if ((actualWidth != Float.MAX_VALUE) && (actualWidth > maxImageWidth)) {
                float proportion = maxImageWidth / actualWidth;
                actualWidth = proportion * actualWidth;
                actualHeight = proportion * actualHeight;
            }

            if ((actualHeight != Float.MAX_VALUE) && (actualHeight > maxImageHeight)) {
                float proportion = maxImageHeight / actualHeight;
                actualWidth = proportion * actualWidth;
                actualHeight = proportion * actualHeight;
            }
    	    
	        // Create a JPEG transcoder
            ImageTranscoder t = null;
            if (imageOutputFormat.equalsIgnoreCase("jpeg")) {
            	t = new JPEGTranscoder();
            } else if (imageOutputFormat.equalsIgnoreCase("png")) {
            	t = new PNGTranscoder();
            } else {
            	throw new UnsupportedImageFormatException("Cannot convert SVG to " + imageOutputFormat);
            }
	
	        // Set the transcoding hints.
	        t.addTranscodingHint(JPEGTranscoder.KEY_QUALITY, new Float(.8));
	        t.addTranscodingHint(JPEGTranscoder.KEY_WIDTH, actualWidth);
	        t.addTranscodingHint(JPEGTranscoder.KEY_HEIGHT, actualHeight);
	
	        // Create the transcoder input.
	        TranscoderInput input = new TranscoderInput(doc);
	
	        // Create the transcoder output.
	        OutputStream ostream = new FileOutputStream(imageDestPath);
	        TranscoderOutput output = new TranscoderOutput(ostream);
	
	        // Save the image.
	        t.transcode(input, output);
	
	        // Flush and close the stream.
	        ostream.flush();
	        ostream.close();

	        finalImagePath = imageDestPath;
        } catch (FileNotFoundException e) {
            logger.error("Image file not found", e);
            getStatusAccumulator().addWarningMessage("The image file " + imageSourcePath + " specified in the XML was not found.");
            finalImagePath = imageSourcePath;
        } catch (IOException e) {
            logger.error("Image I/O error", e);
            getStatusAccumulator().addWarningMessage("An error occurred while processing image file " + imageSourcePath + ": " + e.getMessage());
            finalImagePath = imageSourcePath;
        } catch (TranscoderException e) {
            logger.error("Image conversion error", e);
            getStatusAccumulator().addWarningMessage("An error occurred while processing image file " + imageSourcePath + ": " + e.getMessage());
            finalImagePath = imageSourcePath;
        } catch (Exception e) {
        	// Batik sometimes NPEs...
            logger.error("Image conversion error", e);
            getStatusAccumulator().addWarningMessage("An error occurred while processing image file " + imageSourcePath + ": " + e.getMessage());
            finalImagePath = imageSourcePath;
        }


Thanks in advance for any help you can provide.

Cheers
Chris
Comment 1 chris 2010-04-28 23:27:18 UTC
One additional tidbit: this exception occurred while running the program under the Eclipse debugger using JVM arguments "-Xmx1024M -Dcom.sun.management.jmxremote".  I tried running it outside the debugger with -Xmx1024M and it appears to have worked (or at least I didn't get an NPE).
Comment 2 Thomas Deweese 2010-04-29 05:58:54 UTC
(In reply to comment #0)
> I'm using the Transcoder API to rasterize an SVG into JPEG.  I'm getting the
> following NPE, followed by a complete crash of the Java VM (there's two stack
> traces here - I'm not sure if it happened twice on two separate images or if
> these are related somehow):

   I think it must be a side effect of running out of memory. I'm not
sure why an OOM exeception isn't thrown.


> java.lang.NullPointerException
>     at java.awt.image.DataBufferInt.getBankData(DataBufferInt.java:162)
>     at
> org.apache.batik.ext.awt.image.rendered.PadRed$ZeroRecter_INT_PACK.<init>(PadRed.java:156)
>     at
> org.apache.batik.ext.awt.image.rendered.PadRed$ZeroRecter.getZeroRecter(PadRed.java:123)
>     at
> org.apache.batik.ext.awt.image.rendered.PadRed.handleZero(PadRed.java:193)
>     at org.apache.batik.ext.awt.image.rendered.PadRed.copyData(PadRed.java:92)
>     at
> org.apache.batik.ext.awt.image.rendered.ColorMatrixRed.copyData(ColorMatrixRed.java:116)
>     at
> org.apache.batik.ext.awt.image.rendered.FormatRed.copyData(FormatRed.java:116)
>     at
> org.apache.batik.ext.awt.image.rendered.AbstractRed.getData(AbstractRed.java:526)

    The Writable Raster who's DataBuffer is 'bad' is allocated a few lines
before this.  And that Raster is just passed down to the point where getting
the DataBuffer's data bank causes the NPE.

    If you are looking to rasterize large documents you would be much better
off using the TiledImageTranscoder (contrib/tiledTranscoder) which uses
Tiff for the output and renders the image in strips to greatly reduce memory
consumption.
Comment 3 chris 2010-04-29 10:24:50 UTC
Thank you for your comments, Thomas.  I'll take a look at TiledImageTranscoder, but I'm wondering if I won't still run into memory issues since I'm required to end up with a JPEG at the end of the process.  Do you think that converting SVG -> TIFF -> JPEG will have lower memory requirements than a direct SVG -> TIFF conversion? and are TIFF image readers generally available with the JVM so that I can use the standard ImageIO methods to convert TIFF to JPEG?


Best,
Chris
Comment 4 chris 2010-05-09 13:25:09 UTC
I'm continuing to get this error even if I raise the JVM maximum memory allocation substantially.  The most recent stack trace with -Xmx1536M is:

java.lang.NullPointerException
	at java.awt.image.DataBufferInt.getBankData(DataBufferInt.java:162)
	at org.apache.batik.ext.awt.image.rendered.PadRed$ZeroRecter_INT_PACK.<init>(PadRed.java:156)
	at org.apache.batik.ext.awt.image.rendered.PadRed$ZeroRecter.getZeroRecter(PadRed.java:123)
	at org.apache.batik.ext.awt.image.rendered.PadRed.handleZero(PadRed.java:193)
	at org.apache.batik.ext.awt.image.rendered.PadRed.copyData(PadRed.java:92)
	at org.apache.batik.ext.awt.image.rendered.ColorMatrixRed.copyData(ColorMatrixRed.java:116)
	at org.apache.batik.ext.awt.image.rendered.FormatRed.copyData(FormatRed.java:116)
	at org.apache.batik.ext.awt.image.rendered.AbstractRed.getData(AbstractRed.java:526)
	at org.apache.batik.ext.awt.image.GraphicsUtil.drawImage(GraphicsUtil.java:264)
	at org.apache.batik.ext.awt.image.GraphicsUtil.drawImage(GraphicsUtil.java:455)
	at org.apache.batik.ext.awt.image.renderable.PadRable8Bit.paintRable(PadRable8Bit.java:135)
	at org.apache.batik.ext.awt.image.GraphicsUtil.drawImage(GraphicsUtil.java:440)
	at org.apache.batik.ext.awt.image.renderable.PadRable8Bit.paintRable(PadRable8Bit.java:135)
	at org.apache.batik.ext.awt.image.GraphicsUtil.drawImage(GraphicsUtil.java:440)
	at org.apache.batik.ext.awt.image.renderable.FilterChainRable8Bit.paintRable(FilterChainRable8Bit.java:251)
	at org.apache.batik.ext.awt.image.GraphicsUtil.drawImage(GraphicsUtil.java:440)
	at org.apache.batik.gvt.AbstractGraphicsNode.paint(AbstractGraphicsNode.java:549)
	at org.apache.batik.gvt.CompositeGraphicsNode.primitivePaint(CompositeGraphicsNode.java:165)
	at org.apache.batik.gvt.AbstractGraphicsNode.paint(AbstractGraphicsNode.java:509)
	at org.apache.batik.gvt.CompositeGraphicsNode.primitivePaint(CompositeGraphicsNode.java:165)
	at org.apache.batik.gvt.filter.GraphicsNodeRed8Bit.genRect(GraphicsNodeRed8Bit.java:140)
	at org.apache.batik.gvt.filter.GraphicsNodeRed8Bit.copyData(GraphicsNodeRed8Bit.java:116)
	at org.apache.batik.ext.awt.image.rendered.PadRed.copyData(PadRed.java:88)
	at org.apache.batik.ext.awt.image.rendered.AbstractRed.getData(AbstractRed.java:526)
	at org.apache.batik.ext.awt.image.rendered.Any2LumRed.copyData(Any2LumRed.java:71)
	at org.apache.batik.ext.awt.image.rendered.AbstractRed.getData(AbstractRed.java:526)
	at org.apache.batik.ext.awt.image.rendered.FilterAsAlphaRed.copyData(FilterAsAlphaRed.java:83)
	at org.apache.batik.ext.awt.image.rendered.AbstractRed.getData(AbstractRed.java:526)
	at org.apache.batik.ext.awt.image.rendered.MultiplyAlphaRed.INT_PACK_BYTE_COMP_Impl(MultiplyAlphaRed.java:107)
	at org.apache.batik.ext.awt.image.rendered.MultiplyAlphaRed.copyData(MultiplyAlphaRed.java:183)
	at org.apache.batik.ext.awt.image.rendered.Any2sRGBRed.copyData(Any2sRGBRed.java:166)
	at org.apache.batik.ext.awt.image.rendered.FormatRed.copyData(FormatRed.java:116)
	at org.apache.batik.ext.awt.image.GraphicsUtil.drawImage(GraphicsUtil.java:347)
	at org.apache.batik.ext.awt.image.GraphicsUtil.drawImage(GraphicsUtil.java:455)
	at org.apache.batik.gvt.AbstractGraphicsNode.paint(AbstractGraphicsNode.java:549)
	at org.apache.batik.gvt.CompositeGraphicsNode.primitivePaint(CompositeGraphicsNode.java:165)
	at org.apache.batik.gvt.AbstractGraphicsNode.paint(AbstractGraphicsNode.java:509)
	at org.apache.batik.gvt.CompositeGraphicsNode.primitivePaint(CompositeGraphicsNode.java:165)
	at org.apache.batik.gvt.AbstractGraphicsNode.paint(AbstractGraphicsNode.java:509)
	at org.apache.batik.gvt.CompositeGraphicsNode.primitivePaint(CompositeGraphicsNode.java:165)
	at org.apache.batik.gvt.AbstractGraphicsNode.paint(AbstractGraphicsNode.java:509)
	at org.apache.batik.gvt.CompositeGraphicsNode.primitivePaint(CompositeGraphicsNode.java:165)
	at org.apache.batik.gvt.AbstractGraphicsNode.paint(AbstractGraphicsNode.java:509)
	at org.apache.batik.gvt.CompositeGraphicsNode.primitivePaint(CompositeGraphicsNode.java:165)
	at org.apache.batik.gvt.CanvasGraphicsNode.primitivePaint(CanvasGraphicsNode.java:159)
	at org.apache.batik.gvt.AbstractGraphicsNode.paint(AbstractGraphicsNode.java:509)
	at org.apache.batik.gvt.CompositeGraphicsNode.primitivePaint(CompositeGraphicsNode.java:165)
	at org.apache.batik.gvt.AbstractGraphicsNode.paint(AbstractGraphicsNode.java:509)
	at org.apache.batik.gvt.renderer.MacRenderer.repaint(MacRenderer.java:361)
	at org.apache.batik.gvt.renderer.MacRenderer.repaint(MacRenderer.java:291)
	at org.apache.batik.transcoder.image.ImageTranscoder.transcode(ImageTranscoder.java:111)
	at org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(XMLAbstractTranscoder.java:142)
	at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:156)
	at com.dji.converter.epub.renderer.ImageRenderer.convertVectorImage(ImageRenderer.java:332)
	at com.dji.converter.epub.renderer.ImageRenderer.render(ImageRenderer.java:113)
	at com.dji.converter.epub.renderer.ImageRenderer.render(ImageRenderer.java:56)
	at com.dji.converter.epub.ePubWriter.writeContent(ePubWriter.java:218)
	at com.dji.converter.epub.ePubConverter.writeContent(ePubConverter.java:376)
	at com.dji.converter.epub.ePubConverter.processEvents(ePubConverter.java:335)
	at com.dji.converter.epub.ePubConverter.convert(ePubConverter.java:185)
	at com.dji.converter.ConverterBase.run(ConverterBase.java:88)
	at java.lang.Thread.run(Thread.java:613)
Invalid memory access of location 0x128 eip=0x4dcd8a