esteinberg / plantuml4idea

Intellij IDEA plugin for PlantUML
Apache License 2.0
618 stars 111 forks source link

org.apache.batik.transcoder.TranscoderException: null #394

Closed Bellamonte closed 1 year ago

Bellamonte commented 1 year ago
          With the new version, I get the following error at least for some diagrams, as far as I could reproduce, those with a diagram embedded inside a note:
<?xml version="1.0" encoding="us-ascii" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" height="192px" preserveAspectRatio="none" style="width:208px;height:192px;background:#FFFFFF;" version="1.1" viewBox="0 0 208 192" width="208px" zoomAndPan="magnify"><defs/><g><g id="elem_some_note_with_state_diagram_inside"><path d="M7,7 L7,178 L194,178 L194,17 L184,7 L7,7 " fill="#FEFFDD" style="stroke:#181818;stroke-width:0.5;"/><path d="M184,7 L184,17 L194,17 L184,7 " fill="#FEFFDD" style="stroke:#181818;stroke-width:1.0;"/><image height="161" width="166" x="13" xlink:href="data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjE2MSIgd2lkdGg9IjE2NiIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgPjxkZWZzLz48Zz48cmVjdCBmaWxsPSIjRkZGRkZGIiBzdHlsZT0id2lkdGg6MTY2cHg7aGVpZ2h0OjE2MXB4O2JhY2tncm91bmQ6I0ZGRkZGRjsiIC8+IDxlbGxpcHNlIGN4PSI1MC41IiBjeT0iMTYiIGZpbGw9IiMxODE4MTgiIHJ4PSIxMCIgcnk9IjEwIiBzdHlsZT0ic3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjEuMDsiLz48ZyBpZD0ic29tZVN0YXRlIj48cmVjdCBmaWxsPSIjRjFGMUYxIiBoZWlnaHQ9IjUwIiByeD0iMTIuNSIgcnk9IjEyLjUiIHN0eWxlPSJzdHJva2U6IzE4MTgxODtzdHJva2Utd2lkdGg6MC41OyIgd2lkdGg9Ijg3IiB4PSI3IiB5PSIxMDUiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiMxODE4MTg7c3Ryb2tlLXdpZHRoOjAuNTsiIHgxPSI3IiB4Mj0iOTQiIHkxPSIxMzMuNjIxMSIgeTI9IjEzMy42MjExIi8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9InNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iNjciIHg9IjE3IiB5PSIxMjUuMTA3NCI+c29tZVN0YXRlPC90ZXh0PjwvZz48IS0tbGluayAqc3RhcnQqIHRvIHNvbWVTdGF0ZS0tPjxnIGlkPSJsaW5rXypzdGFydCpfc29tZVN0YXRlIj48cGF0aCBkPSJNNTAuNSwyNi4xNyBDNTAuNSw0Mi4wNyA1MC41LDc1LjQgNTAuNSw5OS44MiAiIGZpbGw9Im5vbmUiIGlkPSIqc3RhcnQqLXRvLXNvbWVTdGF0ZSIgc3R5bGU9InN0cm9rZTojMTgxODE4O3N0cm9rZS13aWR0aDoxLjA7Ii8+PHBvbHlnb24gZmlsbD0iIzE4MTgxOCIgcG9pbnRzPSI1MC41LDEwNC44OSw1NC41LDk1Ljg5LDUwLjUsOTkuODksNDYuNSw5NS44OSw1MC41LDEwNC44OSIgc3R5bGU9InN0cm9rZTojMTgxODE4O3N0cm9rZS13aWR0aDoxLjA7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9InNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTA3IiB4PSI1MS41IiB5PSI3MS4wMjgzIj5zb21lU3RhdGVDaGFuZ2U8L3RleHQ+PC9nPjwhLS1TUkM9W0t1Wk1ZYk5HclJMSkFDeEZKR3FrSUluOUxSMTJpOXFwNGxGSUttNDBdLS0+PC9nPjwvc3ZnPg==" y="12"/></g><!--SRC=[oyilILL8B5OepizDZSy3SkBBCqiouejB4e7CbCp4zAB4tFZClEBCb5IkwcekXMYjM0LTNJkm-c2G8WKh1Div8p4lFPMhjfOhDIz50MGQ0000]--></g></svg>

org.apache.batik.transcoder.TranscoderException: null
Enclosed Exception:
data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjE2MSIgd2lkdGg9IjE2NiIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgPjxkZWZzLz48Zz48cmVjdCBmaWxsPSIjRkZGRkZGIiBzdHlsZT0id2lkdGg6MTY2cHg7aGVpZ2h0OjE2MXB4O2JhY2tncm91bmQ6I0ZGRkZGRjsiIC8+IDxlbGxpcHNlIGN4PSI1MC41IiBjeT0iMTYiIGZpbGw9IiMxODE4MTgiIHJ4PSIxMCIgcnk9IjEwIiBzdHlsZT0ic3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjEuMDsiLz48ZyBpZD0ic29tZVN0YXRlIj48cmVjdCBmaWxsPSIjRjFGMUYxIiBoZWlnaHQ9IjUwIiByeD0iMTIuNSIgcnk9IjEyLjUiIHN0eWxlPSJzdHJva2U6IzE4MTgxODtzdHJva2Utd2lkdGg6MC41OyIgd2lkdGg9Ijg3IiB4PSI3IiB5PSIxMDUiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiMxODE4MTg7c3Ryb2tlLXdpZHRoOjAuNTsiIHgxPSI3IiB4Mj0iOTQiIHkxPSIxMzMuNjIxMSIgeTI9IjEzMy42MjExIi8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9InNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iNjciIHg9IjE3IiB5PSIxMjUuMTA3NCI+c29tZVN0YXRlPC90ZXh0PjwvZz48IS0tbGluayAqc3RhcnQqIHRvIHNvbWVTdGF0ZS0tPjxnIGlkPSJsaW5rXypzdGFydCpfc29tZVN0YXRlIj48cGF0aCBkPSJNNTAuNSwyNi4xNyBDNTAuNSw0Mi4wNyA1MC41LDc1LjQgNTAuNSw5OS44MiAiIGZpbGw9Im5vbmUiIGlkPSIqc3RhcnQqLXRvLXNvbWVTdGF0ZSIgc3R5bGU9InN0cm9rZTojMTgxODE4O3N0cm9rZS13aWR0aDoxLjA7Ii8+PHBvbHlnb24gZmlsbD0iIzE4MTgxOCIgcG9pbnRzPSI1MC41LDEwNC44OSw1NC41LDk1Ljg5LDUwLjUsOTkuODksNDYuNSw5NS44OSw1MC41LDEwNC44OSIgc3R5bGU9InN0cm9rZTojMTgxODE4O3N0cm9rZS13aWR0aDoxLjA7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9InNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTA3IiB4PSI1MS41IiB5PSI3MS4wMjgzIj5zb21lU3RhdGVDaGFuZ2U8L3RleHQ+PC9nPjwhLS1TUkM9W0t1Wk1ZYk5HclJMSkFDeEZKR3FrSUluOUxSMTJpOXFwNGxGSUttNDBdLS0+PC9nPjwvc3ZnPg==:1
The attribute "width" of the element <rect> is required
    at org.plantuml.idea.preview.image.svg.batik.MySvgTranscoder$Companion.createImage(MySvgTranscoder.kt:110)
    at org.plantuml.idea.preview.image.svg.batik.MySvgTranscoder$Companion.createImage$default(MySvgTranscoder.kt:73)
    at org.plantuml.idea.preview.image.svg.batik.MySvgTranscoder$Companion.createImage(MySvgTranscoder.kt)
    at org.plantuml.idea.preview.image.svg.batik.MySvgTranscoder.createImage(MySvgTranscoder.kt)
    at org.plantuml.idea.preview.image.svg.MyImageEditorImpl$MyScaledImageProvider.createImage(MyImageEditorImpl.java:247)
    at org.plantuml.idea.preview.image.svg.MyImageEditorImpl$MyScaledImageProvider.apply(MyImageEditorImpl.java:210)
    at org.plantuml.idea.preview.image.svg.MyImageEditorImpl$MyScaledImageProvider.apply(MyImageEditorImpl.java:187)
    at org.intellij.images.ui.ImageComponent$ImageDocumentImpl.lambda$setValue$2(ImageComponent.java:308)
    at org.intellij.images.ui.ImageComponent$ImageDocumentImpl.getValue(ImageComponent.java:295)
    at org.intellij.images.ui.ImageComponent$ImageDocumentImpl.getValue(ImageComponent.java:290)
    at org.plantuml.idea.preview.image.svg.MyImageEditorUI$DocumentChangeListener.stateChanged(MyImageEditorUI.java:634)
    at org.intellij.images.ui.ImageComponent$ImageDocumentImpl.fireChangeEvent(ImageComponent.java:329)
    at org.intellij.images.ui.ImageComponent$ImageDocumentImpl.setFormat(ImageComponent.java:324)
    at org.plantuml.idea.preview.image.svg.MyImageEditorUI.setImageProvider(MyImageEditorUI.java:283)
    at org.plantuml.idea.preview.image.svg.MyImageEditorImpl.setValue(MyImageEditorImpl.java:95)
    at org.plantuml.idea.preview.image.svg.MyImageEditorImpl.<init>(MyImageEditorImpl.java:89)
    at org.plantuml.idea.preview.image.ImageContainerSvg.initEditor(ImageContainerSvg.java:155)
    at org.plantuml.idea.rendering.ImageItem.initImage(ImageItem.java:189)
    at org.plantuml.idea.rendering.RenderCommand.lambda$displayResult$0(RenderCommand.java:173)
    at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
    at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
    at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
    at java.base/java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:290)
    at java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:754)
    at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
    at java.base/java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:686)
    at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:159)
    at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:173)
    at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
    at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
    at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:765)
    at org.plantuml.idea.rendering.RenderCommand.lambda$displayResult$2(RenderCommand.java:171)
    at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
    at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992)
    at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
    at java.base/java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:290)
    at java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:754)
    at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
    at java.base/java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:686)
    at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:159)
    at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:173)
    at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
    at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
    at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:765)
    at org.plantuml.idea.rendering.RenderCommand.displayResult(RenderCommand.java:170)
    at org.plantuml.idea.rendering.LazyApplicationPoolExecutor$MyRunnable.run(LazyApplicationPoolExecutor.java:131)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: org.apache.batik.bridge.BridgeException: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjE2MSIgd2lkdGg9IjE2NiIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgPjxkZWZzLz48Zz48cmVjdCBmaWxsPSIjRkZGRkZGIiBzdHlsZT0id2lkdGg6MTY2cHg7aGVpZ2h0OjE2MXB4O2JhY2tncm91bmQ6I0ZGRkZGRjsiIC8+IDxlbGxpcHNlIGN4PSI1MC41IiBjeT0iMTYiIGZpbGw9IiMxODE4MTgiIHJ4PSIxMCIgcnk9IjEwIiBzdHlsZT0ic3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjEuMDsiLz48ZyBpZD0ic29tZVN0YXRlIj48cmVjdCBmaWxsPSIjRjFGMUYxIiBoZWlnaHQ9IjUwIiByeD0iMTIuNSIgcnk9IjEyLjUiIHN0eWxlPSJzdHJva2U6IzE4MTgxODtzdHJva2Utd2lkdGg6MC41OyIgd2lkdGg9Ijg3IiB4PSI3IiB5PSIxMDUiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiMxODE4MTg7c3Ryb2tlLXdpZHRoOjAuNTsiIHgxPSI3IiB4Mj0iOTQiIHkxPSIxMzMuNjIxMSIgeTI9IjEzMy42MjExIi8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9InNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iNjciIHg9IjE3IiB5PSIxMjUuMTA3NCI+c29tZVN0YXRlPC90ZXh0PjwvZz48IS0tbGluayAqc3RhcnQqIHRvIHNvbWVTdGF0ZS0tPjxnIGlkPSJsaW5rXypzdGFydCpfc29tZVN0YXRlIj48cGF0aCBkPSJNNTAuNSwyNi4xNyBDNTAuNSw0Mi4wNyA1MC41LDc1LjQgNTAuNSw5OS44MiAiIGZpbGw9Im5vbmUiIGlkPSIqc3RhcnQqLXRvLXNvbWVTdGF0ZSIgc3R5bGU9InN0cm9rZTojMTgxODE4O3N0cm9rZS13aWR0aDoxLjA7Ii8+PHBvbHlnb24gZmlsbD0iIzE4MTgxOCIgcG9pbnRzPSI1MC41LDEwNC44OSw1NC41LDk1Ljg5LDUwLjUsOTkuODksNDYuNSw5NS44OSw1MC41LDEwNC44OSIgc3R5bGU9InN0cm9rZTojMTgxODE4O3N0cm9rZS13aWR0aDoxLjA7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9InNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTA3IiB4PSI1MS41IiB5PSI3MS4wMjgzIj5zb21lU3RhdGVDaGFuZ2U8L3RleHQ+PC9nPjwhLS1TUkM9W0t1Wk1ZYk5HclJMSkFDeEZKR3FrSUluOUxSMTJpOXFwNGxGSUttNDBdLS0+PC9nPjwvc3ZnPg==:1
The attribute "width" of the element <rect> is required
    at org.apache.batik.bridge.SVGRectElementBridge.buildShape(SVGRectElementBridge.java:119)
    at org.apache.batik.bridge.SVGShapeElementBridge.createGraphicsNode(SVGShapeElementBridge.java:60)
    at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:213)
    at org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:171)
    at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:219)
    at org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:171)
    at org.apache.batik.bridge.GVTBuilder.build(GVTBuilder.java:141)
    at org.apache.batik.bridge.SVGImageElementBridge.createSVGImageNode(SVGImageElementBridge.java:698)
    at org.apache.batik.bridge.SVGImageElementBridge.createImageGraphicsNode(SVGImageElementBridge.java:296)
    at org.apache.batik.bridge.SVGImageElementBridge.buildImageGraphicsNode(SVGImageElementBridge.java:179)
    at org.apache.batik.bridge.SVGImageElementBridge.createGraphicsNode(SVGImageElementBridge.java:121)
    at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:213)
    at org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:171)
    at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:219)
    at org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:171)
    at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:219)
    at org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:171)
    at org.apache.batik.bridge.GVTBuilder.build(GVTBuilder.java:82)
    at org.plantuml.idea.preview.image.svg.batik.MySvgTranscoder$Companion.createImage(MySvgTranscoder.kt:91)
    ... 50 more

I reduced it to the following example, which could successfully be rendered in SVG using plain PlantUML 1.2023.7, but running into an error with the plugin:

@startuml
note as some_note_with_state_diagram_inside
{{
 [*] --> someState : someStateChange
}}
end note
@enduml

Originally posted by @Bellamonte in https://github.com/esteinberg/plantuml4idea/issues/392#issuecomment-1584282338

krasa commented 1 year ago

Sorry, either downgrading or disabling the SVG preview should work.