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