PlantUML (1.2021.8) cannot parse result from dot/GraphViz.

0 votes
asked Sep 26, 2021 in Bug by germo (160 points)
When I try to render some puml diagrams, using kroki, I get this error

puml file:

https://gitlab.com/datahandwerk/dhw-antora-sqldb/-/blob/main/docs/modules/sqldb/partials/puml/entity_30_0_objectref/docs.usp_AntoraExport_ObjectPartialProperties.puml

An error has occured : java.lang.IndexOutOfBoundsException: Index -1 out of bounds for length 4It makes the truth even more incomprehensible because everything is newDiagram size: 1642 lines / 89406 characters.PlantUML (1.2021.8) cannot parse result from dot/GraphViz.This version of PlantUML is 91 days old, so you shouldconsider upgrading from https://plantuml.com/downloadGraphViz version used : version 2.44.0 ()Please go to https://plantuml.com/graphviz-dot to check your GraphViz version.Java Runtime: OpenJDK Runtime EnvironmentJVM: OpenJDK 64-Bit Server VMDefault Encoding: UTF-8Language: enCountry: USPLANTUML_LIMIT_SIZE: 4096This may be caused by :- a bug in PlantUML- a problem in GraphVizYou should send this diagram and this image toplantuml@gmail.comorpost tohttps://plantuml.com/qato solve this issue.You can try to turn arround this issue by simplifing your diagram.java.lang.IndexOutOfBoundsException: Index -1 out of bounds for length 4java.base/jdk.internal.util.Preconditions.outOfBounds(Unknown Source)java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Unknown Source)java.base/jdk.internal.util.Preconditions.checkIndex(Unknown Source)java.base/java.util.Objects.checkIndex(Unknown Source)java.base/java.util.ArrayList.get(Unknown Source)net.sourceforge.plantuml.ugraphic.UPolygon.checkMiddleContactForSpecificTriangle(UPolygon.java:76)net.sourceforge.plantuml.svek.SvekLine.getExtremity(SvekLine.java:497)net.sourceforge.plantuml.svek.SvekLine.solveLine(SvekLine.java:556)net.sourceforge.plantuml.svek.DotStringFactory.solve(DotStringFactory.java:446)net.sourceforge.plantuml.svek.GeneralImageBuilder.buildImage(GeneralImageBuilder.java:475)net.sourceforge.plantuml.svek.CucaDiagramFileMakerSvek.createFileInternal(CucaDiagramFileMakerSvek.java:102)net.sourceforge.plantuml.svek.CucaDiagramFileMakerSvek.createFile(CucaDiagramFileMakerSvek.java:67)net.sourceforge.plantuml.cucadiagram.CucaDiagram.exportDiagramInternal(CucaDiagram.java:639)net.sourceforge.plantuml.classdiagram.ClassDiagram.exportDiagramInternal(ClassDiagram.java:188)net.sourceforge.plantuml.UmlDiagram.exportDiagramNow(UmlDiagram.java:144)net.sourceforge.plantuml.AbstractPSystem.exportDiagram(AbstractPSystem.java:157)io.kroki.server.service.Plantuml.convert(Plantuml.java:274)io.kroki.server.service.Plantuml.lambda$convert$5(Plantuml.java:235)io.vertx.core.impl.ContextImpl.lambda$null$0(ContextImpl.java:160)io.vertx.core.impl.AbstractContext.dispatch(AbstractContext.java:96)io.vertx.core.impl.ContextImpl.lambda$executeBlocking$1(ContextImpl.java:158)io.vertx.core.impl.TaskQueue.run(TaskQueue.java:76)java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)java.base/java.lang.Thread.run(Unknown Source)
commented Sep 26, 2021 by albert (3,520 points)

I just tried to run it locally with version:

PlantUML version 1.2021.11beta6 (Unknown compile time)
(GPL source distribution)
Java Runtime: Java(TM) SE Runtime Environment
JVM: Java HotSpot(TM) 64-Bit Server VM
Default Encoding: Cp1252
Language: en
Country: US

PLANTUML_LIMIT_SIZE: 4096

Dot version: dot - graphviz version 2.44.1 (20200629.0846)
Installation seems OK. File generation OK

and this rendered the file.

When running on the platuml webserver I also get an error starting with:

You don't have permission to access /plantuml/uml/d99lQzim4CRVwrCSUTCII3w02MLhmIDGkZAd-.........

As the problem is quite large it might be some buffer overflow.

commented Sep 26, 2021 by germo (160 points)
I also can render the diagram when I open it in VSC in it's PlantUML extension. And I think, I will be able to remove the redundant relations between class fields when I generate the files next time (the puml is generated automatically and there was a small bug).
commented Sep 26, 2021 by albert (3,520 points)
It is nice when you can regenerate the puml file with the redundant relations, but I think the webserver / kroki should be able to render it. I therefore would advise to open an issue at https://github.com/plantuml/plantuml/issues

Including the puml file as it now, the supplied link a moving target and therefore not persistent (so in future the problem not really be reproduced).

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.
...