Unmapped portout causes image to not render

0 votes
asked 1 day ago in Bug by RedOranges (120 points)

Adding in a 3rd portout to an existing component causes the diagram to not render, removing it does render.

This only happens if I have a link with a label, if the link is unrelated to the component/portout

This happens in the old and new online editor, as well as a docker container I am running.

I tried to also increase the plantuml limit size in docker with no success.


UML source

@startuml
package "A"  {
    component "B" {
        portout p1
        portout p2

        ' Commenting out p3 will get this to render
        portout p3
    }
}

'unrelated link, must be with label

C -> p4 : X

' If I uncomment this following link to the 3rd port, the image will render; BUT only if the link includes the label

' C -> p3 : Y
@enduml


Docker compose

version: '3.8'

services:
  plantuml:
    image: plantuml/plantuml-server:tomcat
    ports:
      - "8080:8080"
    environment:
      - PLANTUML_LIMIT_SIZE=16384
      - JAVA_OPTS=-Xmx2g  # Allocates up to 2GB of RAM to the Java process


Exception in docker

Exception java.lang.IllegalStateException

net.sourceforge.plantuml.dot.UnparsableGraphvizException: java.lang.IllegalStateException

at net.sourceforge.plantuml.svek.GraphvizImageBuilder.buildImage(GraphvizImageBuilder.java:294)

at net.sourceforge.plantuml.svek.CucaDiagramFileMakerSvek.getTextBlock(CucaDiagramFileMakerSvek.java:82)

at net.atmp.CucaDiagram.getTextBlock(CucaDiagram.java:480)

at net.sourceforge.plantuml.UgDiagram.getExporter(UgDiagram.java:121)

at net.sourceforge.plantuml.UgDiagram.exportDiagram(UgDiagram.java:93)

at net.sourceforge.plantuml.servlet.DiagramResponse.sendMap(DiagramResponse.java:321)

at net.sourceforge.plantuml.servlet.MapServlet.doGet(MapServlet.java:57)

at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:622)

at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:710)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:128)

at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:165)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:77)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:113)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:83)

at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:782)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:72)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341)

at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:397)

at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)

at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:1272)

at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1801)

at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)

at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:946)

at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:480)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:57)

at java.base/java.lang.Thread.run(Thread.java:840)

Caused by: java.lang.IllegalStateException

at net.sourceforge.plantuml.svek.DotStringFactory.solve(DotStringFactory.java:358)

at net.sourceforge.plantuml.svek.GraphvizImageBuilder.buildImage(GraphvizImageBuilder.java:287)

... 28 more


Error image in plantuml running in docker

PlantUML diagram


 

Your answer

Your name to display (optional):
Privacy: Your email address will only be used for sending these notifications.
Anti-spam verification:

[Antispam2 Feature: please please wait 1 or 2 minutes (this message will disappear) before pressing the button otherwise it will fail](--------)
To avoid this verification in future, please log in or register.
...