Re: JDK 1.7.0_25 breaks BATIK
Laurent Redor <[email protected]> Mon, 30 Sep 2013 12:47:57 +0200
| Newsgroups | gmane.text.xml.batik.user |
|---|---|
| Message-ID | <[email protected]> |
Hello,
I analyzed a little more our problem. It concerns only one SVG file. And
that is a filter that causes problem:
<filter
inkscape: collect = "always"
id = "filter3834">
<feGaussianBlur
inkscape: collect = "always"
stdDeviation = "2.2770497"
id = "feGaussianBlur3836" />
</ filter>
If I replace it by
<filter
inkscape: collect = "always"
id = "filter3834">
</ filter>
there is no more problem. I do not know if this information is
sufficient to reopen the issue
https://bugs.openjdk.java.net/browse/JDK-8019201 on JDK side. But
anyway, I do not have the rights to do so.
I join the complete SVG file for information and the error stack.
Regards,
Laurent
Le 25/09/2013 19:11, Laurent Redor a écrit :
> Hello,
>
> The bughttps://bugs.openjdk.java.net/browse/JDK-8019201 is fixed. And effectively, if I run the test includes in the commithttp://hg.openjdk.java.net/jdk8/2d/jdk/rev/833f05116f7b :
>
> * It is OK with 1.7.0_21-b11.
> * It is KO with 1.7.0_25-b15.
> * It is OK with 1.7.0_40-b43.
>
> However, I have always similar problem with JDK 1.7.0_40-b43 and the
> AffineTransformOp JDK class.
> I do not know enough about the Batik library and even less ConvolveOp
> and AffineTransformOp JDK classes to adapt the test to reveal the
> problem with AffineTransformOp.
>
> Does someone who knows enough these classes could adapt the test?
>
>
> Best regards,
>
> Laurent
>
> >> Hi everyone,
> >>
> >> the latest security update of Oracle's JDK/JRE 1.7.0_25 breaks many if
> >> not all BufferedImageOp.filter implementations.
> >>
> >> BATIK 1.7 uses these operations in several places
> >> sources/org/apache/batik/ext/awt/g2d/AbstractGraphics2D.java
> >>
> >> sources/org/apache/batik/ext/awt/image/renderable/ConvolveMatrixRable8Bit.java
> >>
> >> sources/org/apache/batik/ext/awt/image/renderable/MorphologyRable8Bit.java
> >> sources/org/apache/batik/ext/awt/image/rendered/AffineRed.java
> >> sources/org/apache/batik/ext/awt/image/rendered/Any2LsRGBRed.java
> >> sources/org/apache/batik/ext/awt/image/rendered/Any2LumRed.java
> >> sources/org/apache/batik/ext/awt/image/rendered/Any2sRGBRed.java
> >> sources/org/apache/batik/ext/awt/image/rendered/ProfileRed.java
> >> sources/org/apache/batik/svggen/SVGGraphics2D.java
> >> and consequently BATIK may break down with unexpected
> >> "java.awt.image.ImagingOpException: Unable to transform src image"
> >> exceptions.
> >>
> >> The only workaround I have been able to find so far is patching BATIK
> >> sources to no longer call BufferedImageOp.filter directly on the source
> >> and destination image, but to filter two ARGB BufferedImage copies.
> >>
> >> A corresponding bug report
> >>http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8019201 has been
> >> filed with Oracle. However, the report does not mention the full extend
> >> of this problem - since filing the report, I have found Linux JDKs and
> >> additional BufferedImageOp implementations such as AffineTransformOp
> >> suffering from this problem, too.
> >
> >A project of mine has had two reports of this very probelm from users
> >using 1.7.0_25 on Windows, and I can reliably reproduce it myself with
> >OpenJDK 1.7.0_25 on Linux.
> >
> >Is there any way we can poke Oracle to fix the regression faster?
> >
> >--
> >J.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
stackTrace.txt
(text/plain, 2.3 KB)
Thread [main] (Suspended (exception ImagingOpException)) owns: IntegerInterleavedRaster (id=12517) AffineTransformOp.filter(BufferedImage, BufferedImage) line: 284 AffineRed.genRect(WritableRaster) line: not available AffineRed.copyData(WritableRaster) line: not available Any2sRGBRed.copyData(WritableRaster) line: not available Any2sRGBRed(AbstractRed).getData(Rectangle) line: not available GraphicsUtil.drawImage(Graphics2D, CachableRed) line: not available GraphicsUtil.drawImage(Graphics2D, RenderableImage) line: not available PadRable8Bit.paintRable(Graphics2D) line: not available GraphicsUtil.drawImage(Graphics2D, RenderableImage) line: not available PadRable8Bit.paintRable(Graphics2D) line: not available GraphicsUtil.drawImage(Graphics2D, RenderableImage) line: not available FilterChainRable8Bit.paintRable(Graphics2D) line: not available GraphicsUtil.drawImage(Graphics2D, RenderableImage) line: not available ShapeNode(AbstractGraphicsNode).paint(Graphics2D) line: not available ShapeNode.paint(Graphics2D) line: not available CompositeGraphicsNode.primitivePaint(Graphics2D) line: not available CompositeGraphicsNode(AbstractGraphicsNode).paint(Graphics2D) line: not available CanvasGraphicsNode(CompositeGraphicsNode).primitivePaint(Graphics2D) line: not available CanvasGraphicsNode.primitivePaint(Graphics2D) line: not available CanvasGraphicsNode(AbstractGraphicsNode).paint(Graphics2D) line: not available RootGraphicsNode(CompositeGraphicsNode).primitivePaint(Graphics2D) line: not available GraphicsNodeRed8Bit.genRect(WritableRaster) line: not available GraphicsNodeRed8Bit.copyData(WritableRaster) line: not available TileCacheRed.genRect(WritableRaster) line: not available TileCacheRed(AbstractTiledRed).drawBlockInPlace(TileBlock[], WritableRaster) line: not available TileCacheRed(AbstractTiledRed).drawBlock(TileBlock, WritableRaster) line: not available TileCacheRed(AbstractTiledRed).copyToRasterByBlocks(WritableRaster) line: not available TileCacheRed(AbstractTiledRed).copyData(WritableRaster) line: not available TranslateRed.copyData(WritableRaster) line: not available PadRed.copyData(WritableRaster) line: not available StaticRenderer.repaint(RectListManager) line: not available StaticRenderer.repaint(Shape) line: not available ...
triangle.svg
(image/svg+xml, 7.2 KB) - not displayed