[
https://issues.apache.org/jira/browse/BATIK-1163?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Harald Kuhr updated BATIK-1163:
-------------------------------
Description:
One of the users of my library, TwelveMonkeys ImageIO reported an issue, trying
to read certain SVG files (my project uses the rasterizer to convert SVG to
BufferedImage, through the javax.imageio API). See the issue here for details:
https://github.com/haraldk/TwelveMonkeys/issues/299
I tracked it down to an internal DOMException, with the message "The "opacity"
property does not support dimension values".
The "offending" values in the CSS were:
opacity:9.090909e-002
Manually changing the values to:
opacity: 0.09090909
...I was able to read/display the SVG using the library/Batik, everything
seemingly okay.
I can open the original SVG in question in both IE and Chrome without issues
(as far as I can see, there might be internal warnings not displayed to me as
an end user). Not sure whether this is a spec/leniency issue, or if this is a
Batik bug, but would be happy if you could look into it.
The stack trace I see in my application is this:
java.lang.NullPointerException
at org.apache.batik.css.engine.CSSEngine.parseStyleSheet(Unknown Source)
at org.apache.batik.css.engine.CSSEngine.parseStyleSheet(Unknown Source)
at org.apache.batik.anim.dom.SVGOMStyleElement.getCSSStyleSheet(Unknown
Source)
at org.apache.batik.css.engine.CSSEngine.getStyleSheetNodes(Unknown
Source)
at org.apache.batik.css.engine.CSSEngine.getCascadedStyleMap(Unknown
Source)
at org.apache.batik.css.engine.CSSEngine.getComputedStyle(Unknown
Source)
at org.apache.batik.bridge.CSSUtilities.getComputedStyle(Unknown Source)
at org.apache.batik.bridge.CSSUtilities.convertVisibility(Unknown
Source)
at
org.apache.batik.bridge.SVGSVGElementBridge.createGraphicsNode(Unknown Source)
at org.apache.batik.bridge.GVTBuilder.build(Unknown Source)
at
com.twelvemonkeys.imageio.plugins.svg.SVGImageReader$Rasterizer.transcode(SVGImageReader.java:307)
at org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(Unknown
Source)
at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(Unknown
Source)
at
com.twelvemonkeys.imageio.plugins.svg.SVGImageReader$Rasterizer.init(SVGImageReader.java:547)
at
com.twelvemonkeys.imageio.plugins.svg.SVGImageReader$Rasterizer.getDefaultWidth(SVGImageReader.java:560)
at
com.twelvemonkeys.imageio.plugins.svg.SVGImageReader.getWidth(SVGImageReader.java:227)
at
com.twelvemonkeys.imageio.plugins.svg.SVGImageReader.read(SVGImageReader.java:129)
at javax.imageio.ImageReader.read(ImageReader.java:940)
at
com.twelvemonkeys.imageio.plugins.svg.SVGImageReaderTest.testFoo(SVGImageReaderTest.java:154)
However, as mentioned, there seems to be an internal exception thrown (and
caught again), inside the CSSEngine/parseStyleSheet() method. I believe this is
the cause, and the NPE just happens after, for some reason. The following stack
trace is never shown in my application, but created by invoking its
printStackTrace() method from the debugger:
org.w3c.dom.DOMException: The "opacity" property does not support dimension
values.
at
org.apache.batik.css.engine.value.AbstractValueFactory.createInvalidLexicalUnitDOMException(Unknown
Source)
at
org.apache.batik.css.engine.value.svg.OpacityManager.createValue(Unknown Source)
at
org.apache.batik.css.engine.CSSEngine$StyleSheetDocumentHandler.property(Unknown
Source)
at org.apache.batik.css.parser.Parser.parseStyleDeclaration(Unknown
Source)
at org.apache.batik.css.parser.Parser.parseRuleSet(Unknown Source)
at org.apache.batik.css.parser.Parser.parseStyleSheet(Unknown Source)
at org.apache.batik.css.engine.CSSEngine.parseStyleSheet(Unknown Source)
at org.apache.batik.css.engine.CSSEngine.parseStyleSheet(Unknown Source)
at org.apache.batik.css.engine.CSSEngine.parseStyleSheet(Unknown Source)
at org.apache.batik.anim.dom.SVGOMStyleElement.getCSSStyleSheet(Unknown
Source)
at org.apache.batik.css.engine.CSSEngine.getStyleSheetNodes(Unknown
Source)
at org.apache.batik.css.engine.CSSEngine.getCascadedStyleMap(Unknown
Source)
at org.apache.batik.css.engine.CSSEngine.getComputedStyle(Unknown
Source)
at org.apache.batik.bridge.CSSUtilities.getComputedStyle(Unknown Source)
at org.apache.batik.bridge.CSSUtilities.convertVisibility(Unknown
Source)
at
org.apache.batik.bridge.SVGSVGElementBridge.createGraphicsNode(Unknown Source)
at org.apache.batik.bridge.GVTBuilder.build(Unknown Source)
at
com.twelvemonkeys.imageio.plugins.svg.SVGImageReader$Rasterizer.transcode(SVGImageReader.java:307)
at org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(Unknown
Source)
at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(Unknown
Source)
at
com.twelvemonkeys.imageio.plugins.svg.SVGImageReader$Rasterizer.init(SVGImageReader.java:547)
at
com.twelvemonkeys.imageio.plugins.svg.SVGImageReader$Rasterizer.getDefaultWidth(SVGImageReader.java:560)
at
com.twelvemonkeys.imageio.plugins.svg.SVGImageReader.getWidth(SVGImageReader.java:227)
at
com.twelvemonkeys.imageio.plugins.svg.SVGImageReader.read(SVGImageReader.java:129)
at javax.imageio.ImageReader.read(ImageReader.java:940)
at
com.twelvemonkeys.imageio.plugins.svg.SVGImageReaderTest.testFoo(SVGImageReaderTest.java:154)
Unfortunately the JARs from Maven central have debug info stripped out, so I
don't have line numbers, and it's quite hard to follow what's happening in the
debugger. It's probably easier for you, if you have classes with debug
information available.
was:
One of the users of my library, TwelveMonkeys ImageIO reported an issue, trying
to read certain SVG files (my project uses the rasterizer to convert SVG to
BufferedImage, through the javax.imageio API). See the issue here for details:
https://github.com/haraldk/TwelveMonkeys/issues/299
I tracked it down to an internal DOMException, with the message "The "opacity"
property does not support dimension values".
The "offending" values in the CSS were:
opacity:9.090909e-002
Manually changing the values to:
opacity: 0.09090909
...I was able to read/display the SVG using the library/Batik, everything
seemingly okay.
I can open the original SVG in question in both IE and Chrome without issues
(as far as I can see, there might be internal warnings not displayed to me as
an end user). Not sure whether this is a spec/leniency issue, or if this is a
Batik bug, but would be happy if you could look into it.
> DOMException: "The "opacity" property does not support dimension values"
> ------------------------------------------------------------------------
>
> Key: BATIK-1163
> URL: https://issues.apache.org/jira/browse/BATIK-1163
> Project: Batik
> Issue Type: Bug
> Affects Versions: 1.8
> Environment: Using Batik 1.8 dependencies from Maven Central.
> Reproduced on Windows, using Java 1.8 (likely not relevant in this case).
> Reporter: Harald Kuhr
> Attachments: Lynparza_PARPinhibition.svg
>
>
> One of the users of my library, TwelveMonkeys ImageIO reported an issue,
> trying to read certain SVG files (my project uses the rasterizer to convert
> SVG to BufferedImage, through the javax.imageio API). See the issue here for
> details: https://github.com/haraldk/TwelveMonkeys/issues/299
> I tracked it down to an internal DOMException, with the message "The
> "opacity" property does not support dimension values".
> The "offending" values in the CSS were:
> opacity:9.090909e-002
> Manually changing the values to:
> opacity: 0.09090909
> ...I was able to read/display the SVG using the library/Batik, everything
> seemingly okay.
> I can open the original SVG in question in both IE and Chrome without issues
> (as far as I can see, there might be internal warnings not displayed to me as
> an end user). Not sure whether this is a spec/leniency issue, or if this is a
> Batik bug, but would be happy if you could look into it.
> The stack trace I see in my application is this:
> java.lang.NullPointerException
> at org.apache.batik.css.engine.CSSEngine.parseStyleSheet(Unknown Source)
> at org.apache.batik.css.engine.CSSEngine.parseStyleSheet(Unknown Source)
> at org.apache.batik.anim.dom.SVGOMStyleElement.getCSSStyleSheet(Unknown
> Source)
> at org.apache.batik.css.engine.CSSEngine.getStyleSheetNodes(Unknown
> Source)
> at org.apache.batik.css.engine.CSSEngine.getCascadedStyleMap(Unknown
> Source)
> at org.apache.batik.css.engine.CSSEngine.getComputedStyle(Unknown
> Source)
> at org.apache.batik.bridge.CSSUtilities.getComputedStyle(Unknown Source)
> at org.apache.batik.bridge.CSSUtilities.convertVisibility(Unknown
> Source)
> at
> org.apache.batik.bridge.SVGSVGElementBridge.createGraphicsNode(Unknown Source)
> at org.apache.batik.bridge.GVTBuilder.build(Unknown Source)
> at
> com.twelvemonkeys.imageio.plugins.svg.SVGImageReader$Rasterizer.transcode(SVGImageReader.java:307)
> at org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(Unknown
> Source)
> at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(Unknown
> Source)
> at
> com.twelvemonkeys.imageio.plugins.svg.SVGImageReader$Rasterizer.init(SVGImageReader.java:547)
> at
> com.twelvemonkeys.imageio.plugins.svg.SVGImageReader$Rasterizer.getDefaultWidth(SVGImageReader.java:560)
> at
> com.twelvemonkeys.imageio.plugins.svg.SVGImageReader.getWidth(SVGImageReader.java:227)
> at
> com.twelvemonkeys.imageio.plugins.svg.SVGImageReader.read(SVGImageReader.java:129)
> at javax.imageio.ImageReader.read(ImageReader.java:940)
> at
> com.twelvemonkeys.imageio.plugins.svg.SVGImageReaderTest.testFoo(SVGImageReaderTest.java:154)
> However, as mentioned, there seems to be an internal exception thrown (and
> caught again), inside the CSSEngine/parseStyleSheet() method. I believe this
> is the cause, and the NPE just happens after, for some reason. The following
> stack trace is never shown in my application, but created by invoking its
> printStackTrace() method from the debugger:
> org.w3c.dom.DOMException: The "opacity" property does not support dimension
> values.
> at
> org.apache.batik.css.engine.value.AbstractValueFactory.createInvalidLexicalUnitDOMException(Unknown
> Source)
> at
> org.apache.batik.css.engine.value.svg.OpacityManager.createValue(Unknown
> Source)
> at
> org.apache.batik.css.engine.CSSEngine$StyleSheetDocumentHandler.property(Unknown
> Source)
> at org.apache.batik.css.parser.Parser.parseStyleDeclaration(Unknown
> Source)
> at org.apache.batik.css.parser.Parser.parseRuleSet(Unknown Source)
> at org.apache.batik.css.parser.Parser.parseStyleSheet(Unknown Source)
> at org.apache.batik.css.engine.CSSEngine.parseStyleSheet(Unknown Source)
> at org.apache.batik.css.engine.CSSEngine.parseStyleSheet(Unknown Source)
> at org.apache.batik.css.engine.CSSEngine.parseStyleSheet(Unknown Source)
> at org.apache.batik.anim.dom.SVGOMStyleElement.getCSSStyleSheet(Unknown
> Source)
> at org.apache.batik.css.engine.CSSEngine.getStyleSheetNodes(Unknown
> Source)
> at org.apache.batik.css.engine.CSSEngine.getCascadedStyleMap(Unknown
> Source)
> at org.apache.batik.css.engine.CSSEngine.getComputedStyle(Unknown
> Source)
> at org.apache.batik.bridge.CSSUtilities.getComputedStyle(Unknown Source)
> at org.apache.batik.bridge.CSSUtilities.convertVisibility(Unknown
> Source)
> at
> org.apache.batik.bridge.SVGSVGElementBridge.createGraphicsNode(Unknown Source)
> at org.apache.batik.bridge.GVTBuilder.build(Unknown Source)
> at
> com.twelvemonkeys.imageio.plugins.svg.SVGImageReader$Rasterizer.transcode(SVGImageReader.java:307)
> at org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(Unknown
> Source)
> at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(Unknown
> Source)
> at
> com.twelvemonkeys.imageio.plugins.svg.SVGImageReader$Rasterizer.init(SVGImageReader.java:547)
> at
> com.twelvemonkeys.imageio.plugins.svg.SVGImageReader$Rasterizer.getDefaultWidth(SVGImageReader.java:560)
> at
> com.twelvemonkeys.imageio.plugins.svg.SVGImageReader.getWidth(SVGImageReader.java:227)
> at
> com.twelvemonkeys.imageio.plugins.svg.SVGImageReader.read(SVGImageReader.java:129)
> at javax.imageio.ImageReader.read(ImageReader.java:940)
> at
> com.twelvemonkeys.imageio.plugins.svg.SVGImageReaderTest.testFoo(SVGImageReaderTest.java:154)
> Unfortunately the JARs from Maven central have debug info stripped out, so I
> don't have line numbers, and it's quite hard to follow what's happening in
> the debugger. It's probably easier for you, if you have classes with debug
> information available.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]