Hi,

You should provide a test case (short xsl-fo + image causing NPE).

Did you test against FOP 1.1 or FOP trunk?

For submitting a Patch, please open a dedicated issue in Jira (see [1]
for further details).

Note: I'm not sure getAlphaRaster() may return null. If true, your
patch should be against xmlgraphics rather than fop.

[1] http://xmlgraphics.apache.org/fop/dev/#patches

2014-06-20 5:19 GMT+02:00 Shane Witbeck <sh...@digitalsanctum.com>:
> Hi,
>
> We use FOP 1.0 for converting documents to PDF. In certain cases when the
> document contains an image that returns null from
> GraphicsUtil.getAlphaRaster, this results in a NPE shown below:
>
> 2014-06-19 10:08:12,932 [http-nio-8080-exec-4] [1:admin:REGULAR] ERROR
> org.apache.fop.area.AreaTreeModel - Error while rendering page 1
> java.lang.NullPointerException: Parameter alpha must not be null
> at org.apache.fop.pdf.AlphaRasterImage.<init>(AlphaRasterImage.java:53)
> at org.apache.fop.pdf.AlphaRasterImage.<init>(AlphaRasterImage.java:67)
> at
> org.apache.fop.render.pdf.ImageRenderedAdapter.setup(ImageRenderedAdapter.java:125)
> at org.apache.fop.pdf.PDFDocument.addImage(PDFDocument.java:828)
> at
> org.apache.fop.render.pdf.PDFImageHandlerRenderedImage.handleImage(PDFImageHandlerRenderedImage.java:80)
> at
> org.apache.fop.render.intermediate.AbstractIFPainter.drawImage(AbstractIFPainter.java:227)
> at
> org.apache.fop.render.intermediate.AbstractIFPainter.drawImage(AbstractIFPainter.java:183)
> at
> org.apache.fop.render.intermediate.AbstractIFPainter.drawImageUsingImageHandler(AbstractIFPainter.java:148)
> at
> org.apache.fop.render.intermediate.AbstractIFPainter.drawImageUsingURI(AbstractIFPainter.java:270)
> at org.apache.fop.render.pdf.PDFPainter.drawImage(PDFPainter.java:146)
> at
> org.apache.fop.render.intermediate.IFRenderer.drawImage(IFRenderer.java:1171)
> at
> org.apache.fop.render.intermediate.IFRenderer.renderImage(IFRenderer.java:1158)
> at
> org.apache.fop.render.AbstractRenderer.renderViewport(AbstractRenderer.java:741)
> at
> org.apache.fop.render.AbstractPathOrientedRenderer.renderViewport(AbstractPathOrientedRenderer.java:709)
> at
> org.apache.fop.render.intermediate.IFRenderer.renderViewport(IFRenderer.java:860)
> at
> org.apache.fop.render.AbstractRenderer.renderInlineArea(AbstractRenderer.java:634)
> at
> org.apache.fop.render.intermediate.IFRenderer.renderInlineArea(IFRenderer.java:912)
>
>
> I have a possible fix patch for the org.apache.fop.pdf.AlphaRasterImage
> (line ~58) here:
>
> /**
>      * Create a alpha channel image.
>      * Extracts the alpha channel from the RenderedImage and creates a new
> bitmap image
>      * with the given data.
>      *
>      * @param k the key to be used to lookup the image
>      * @param image the image (must have an alpha channel)
>      */
>     public AlphaRasterImage(String k, RenderedImage image) {
>         this(k, getAlphaRaster(image));
>     }
>
>     private static java.awt.image.Raster getAlphaRaster(RenderedImage image)
> {
>         java.awt.image.Raster raster = GraphicsUtil.getAlphaRaster(image);
>         if (raster == null && image.getColorModel() instanceof
> IndexColorModel) {
>             int width = image.getWidth();
>             int height = image.getHeight();
>             WritableRaster writableRaster =
> image.getColorModel().createCompatibleWritableRaster(width, height);
>             image.copyData(writableRaster);
>             return writableRaster;
>         }
>         return raster;
>     }
>
> This fixes the NPE but results in a muted image in the resulting PDF file.
> I’d like feedback on the possible fix as well as any ideas as to why the
> resulting image is muted.
>
> Thanks in advance!
>
> -- Shane
>



-- 
pascal

---------------------------------------------------------------------
To unsubscribe, e-mail: fop-users-unsubscr...@xmlgraphics.apache.org
For additional commands, e-mail: fop-users-h...@xmlgraphics.apache.org

Reply via email to