Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

skinParam fixCircleLabelOverlapping doesn't work anymore #1460

Closed
travkin79 opened this issue Jun 16, 2023 · 8 comments
Closed

skinParam fixCircleLabelOverlapping doesn't work anymore #1460

travkin79 opened this issue Jun 16, 2023 · 8 comments
Labels

Comments

@travkin79
Copy link
Contributor

travkin79 commented Jun 16, 2023

Problem description
Having some layout issues in component diagrams, I found a skin parameter fixCircleLabelOverlapping fixing overlapping labels. It did work great in PlantUML version 1.2022.5. Updating PlantUML to 1.2023.5 or to 1.2023.9 lead to strange exceptions. The same diagram could not be rendered anymore.

Steps to reproduce

  1. Save the following diagram in a file test.puml
@startuml
 
skinparam fixCircleLabelOverlapping true
 
() "Product Dubbo" as product_dubbo
() "Member Dubbo" as member_dubbo
() "Guide Dubbo" as guide_dubbo
() "Search Dubbo" as search_dubbo
 
[ME]
[P] - product_dubbo
member_dubbo - [M]
[G] - guide_dubbo
search_dubbo - [S]
 
guide_dubbo <. [ME]
[ME] ..> member_dubbo
[ME] ..> product_dubbo
[ME] .> search_dubbo

footer Rendered with PlantUML version %version()
 
@enduml
  1. Render the diagram to an SVG file using the following PlantUML lib versions
    i. java -jar plantuml-1.2022.5.jar test.puml -tsvg (works as expected)
    ii. java -jar plantuml-1.2023.5.jar test.puml -tsvg leads to exception
Exception java.lang.IllegalStateException
net.sourceforge.plantuml.dot.UnparsableGraphvizException: java.lang.IllegalStateException
	at net.sourceforge.plantuml.svek.GeneralImageBuilder.buildImage(GeneralImageBuilder.java:475)
	at net.sourceforge.plantuml.svek.CucaDiagramFileMakerSvek.createFileInternal(CucaDiagramFileMakerSvek.java:105)
	at net.sourceforge.plantuml.svek.CucaDiagramFileMakerSvek.createFile(CucaDiagramFileMakerSvek.java:70)
	at net.atmp.CucaDiagram.exportDiagramInternal(CucaDiagram.java:435)
	at net.sourceforge.plantuml.UmlDiagram.exportDiagramNow(UmlDiagram.java:142)
	at net.sourceforge.plantuml.AbstractPSystem.exportDiagram(AbstractPSystem.java:198)
	at net.sourceforge.plantuml.PSystemUtils.exportDiagramsDefault(PSystemUtils.java:207)
	at net.sourceforge.plantuml.PSystemUtils.exportDiagrams(PSystemUtils.java:96)
	at net.sourceforge.plantuml.SourceFileReaderAbstract.getGeneratedImages(SourceFileReaderAbstract.java:190)
	at net.sourceforge.plantuml.Run.manageFileInternal(Run.java:510)
	at net.sourceforge.plantuml.Run.processArgs(Run.java:404)
	at net.sourceforge.plantuml.Run.manageAllFiles(Run.java:371)
	at net.sourceforge.plantuml.Run.main(Run.java:206)
Caused by: java.lang.IllegalStateException
	at net.sourceforge.plantuml.svek.SvekLine.getExtremity(SvekLine.java:517)
	at net.sourceforge.plantuml.svek.SvekLine.solveLine(SvekLine.java:607)
	at net.sourceforge.plantuml.svek.DotStringFactory.solve(DotStringFactory.java:451)
	at net.sourceforge.plantuml.svek.GeneralImageBuilder.buildImage(GeneralImageBuilder.java:468)
	... 12 more

iii. java -jar plantuml-1.2023.9.jar test.puml -tsvg leads to another error message
Error java.lang.StringIndexOutOfBoundsException: String index out of range: -2

Expected behavior
The diagram should be rendered without errors and without label overlapping and should look similar to the following rendering result created with PlantUML lib version 1.2022.5:
image

Execution environment:

  • OS: macOS Ventura 13.4
  • JRE: OpenJDK Runtime Environment Temurin-11.0.15+10 (build 11.0.15+10)
  • GraphViz: dot - graphviz version 8.0.5 (20230430.1635)

Additional context
This might be related to #1068.

Another question: Why is the parameter fixCircleLabelOverlapping not turned on by default? Isn't avoiding overlapping labels not the preferred behavior?

@arnaudroques
Copy link
Contributor

Could you try with another graphviz version?
Since it is working on the online server, I would say that this is linked to graphviz.

@travkin79
Copy link
Contributor Author

It seems to be difficult on MacOS to install an older version (brew offers only the newest version). I'll check if I can do that on a Windows PC.

@travkin79
Copy link
Contributor Author

Hello @arnaudroques,
I checked the same diagram with Graphviz 2.44.1 on Windows 10 and I get the same results.

Execution environment:
OS: Windows 10 Pro Vers. 22H2 Build 19045.3086
JRE: OpenJDK Runtime Environment Temurin-19+36 (build 19+36)
GraphViz: dot - graphviz version 2.44.1 (20200629.0846)

I also tried Graphviz 8.0.5 on Windows 10, again, with exactly the same results.

Execution environment:
OS: Windows 10 Pro Vers. 22H2 Build 19045.3086
JRE: OpenJDK Runtime Environment Temurin-19+36 (build 19+36)
GraphViz: dot - graphviz version 8.0.5 (20230430.1635)

Which Graphviz version is used by the online server? Version 2.44 seems to be one of the tested and recommended Graphviz versions (but very old).

@arnaudroques
Copy link
Contributor

Thanks for your tests.

It would be nice if you could add some directive !pragma svek_trace on to your diagram, that is running this diagram.

This should create two files in your current directory (svek.dot and svek.svg).
For the record, we've got the following result here:

svek.dot:

digraph unix {
nodesep=0.486111;
ranksep=0.833333;
remincross=true;
searchsize=500;
sh0011->sh0006:h[arrowtail=none,arrowhead=none,minlen=0,color="#00000F"];
sh0007:h->sh0012[arrowtail=none,arrowhead=none,minlen=0,color="#000013"];
sh0013->sh0008:h[arrowtail=none,arrowhead=none,minlen=0,color="#000017"];
sh0009:h->sh0014[arrowtail=none,arrowhead=none,minlen=0,color="#00001B"];
sh0008:h->sh0010[arrowtail=empty,arrowhead=none,dir=back,arrowsize=0.5,minlen=0,color="#00001F"];
sh0010->sh0009:h[arrowsize=0.5,minlen=0,color="#00002B"];
sh0006 [shape=plaintext,label=<<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" CELLPADDING="0"><TR><TD></TD><TD FIXEDSIZE="TRUE" WIDTH="1.0" HEIGHT="17.609375"></TD><TD></TD></TR><TR><TD FIXEDSIZE="TRUE" WIDTH="38.5" HEIGHT="1.0"></TD><TD BGCOLOR="#000006" FIXEDSIZE="TRUE" WIDTH="18.0" HEIGHT="18.0" PORT="h"></TD><TD FIXEDSIZE="TRUE" WIDTH="38.5" HEIGHT="1.0"></TD></TR><TR><TD></TD><TD FIXEDSIZE="TRUE" WIDTH="1.0" HEIGHT="17.609375"></TD><TD></TD></TR></TABLE>>];

sh0007 [shape=plaintext,label=<<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" CELLPADDING="0"><TR><TD></TD><TD FIXEDSIZE="TRUE" WIDTH="1.0" HEIGHT="17.609375"></TD><TD></TD></TR><TR><TD FIXEDSIZE="TRUE" WIDTH="39.5" HEIGHT="1.0"></TD><TD BGCOLOR="#000007" FIXEDSIZE="TRUE" WIDTH="18.0" HEIGHT="18.0" PORT="h"></TD><TD FIXEDSIZE="TRUE" WIDTH="39.5" HEIGHT="1.0"></TD></TR><TR><TD></TD><TD FIXEDSIZE="TRUE" WIDTH="1.0" HEIGHT="17.609375"></TD><TD></TD></TR></TABLE>>];

sh0008 [shape=plaintext,label=<<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" CELLPADDING="0"><TR><TD></TD><TD FIXEDSIZE="TRUE" WIDTH="1.0" HEIGHT="17.609375"></TD><TD></TD></TR><TR><TD FIXEDSIZE="TRUE" WIDTH="33.0" HEIGHT="1.0"></TD><TD BGCOLOR="#000008" FIXEDSIZE="TRUE" WIDTH="18.0" HEIGHT="18.0" PORT="h"></TD><TD FIXEDSIZE="TRUE" WIDTH="33.0" HEIGHT="1.0"></TD></TR><TR><TD></TD><TD FIXEDSIZE="TRUE" WIDTH="1.0" HEIGHT="17.609375"></TD><TD></TD></TR></TABLE>>];

sh0009 [shape=plaintext,label=<<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" CELLPADDING="0"><TR><TD></TD><TD FIXEDSIZE="TRUE" WIDTH="1.0" HEIGHT="17.609375"></TD><TD></TD></TR><TR><TD FIXEDSIZE="TRUE" WIDTH="36.5" HEIGHT="1.0"></TD><TD BGCOLOR="#000009" FIXEDSIZE="TRUE" WIDTH="18.0" HEIGHT="18.0" PORT="h"></TD><TD FIXEDSIZE="TRUE" WIDTH="36.5" HEIGHT="1.0"></TD></TR><TR><TD></TD><TD FIXEDSIZE="TRUE" WIDTH="1.0" HEIGHT="17.609375"></TD><TD></TD></TR></TABLE>>];

sh0010 [shape=rect,label="",width=0.833333,height=0.661241,color="#00000A"];
sh0011 [shape=rect,label="",width=0.680556,height=0.661241,color="#00000B"];
sh0012 [shape=rect,label="",width=0.708333,height=0.661241,color="#00000C"];
sh0013 [shape=rect,label="",width=0.708333,height=0.661241,color="#00000D"];
sh0014 [shape=rect,label="",width=0.680556,height=0.661241,color="#00000E"];
sh0010->sh0007:h[arrowsize=0.5,minlen=1,color="#000023"];
sh0010->sh0006:h[arrowsize=0.5,minlen=1,color="#000027"];

}

svek.svg:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.44.1 (20200629.0846)
 -->
<!-- Title: unix Pages: 1 -->
<svg width="515pt" height="188pt"
 viewBox="0.00 0.00 515.00 188.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 184)">
<title>unix</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-184 511,-184 511,4 -4,4"/>
<!-- sh0011 -->
<g id="node1" class="node">
<title>sh0011</title>
<polygon fill="none" stroke="#00000b" points="88,-54 39,-54 39,-6 88,-6 88,-54"/>
</g>
<!-- sh0006 -->
<g id="node2" class="node">
<title>sh0006</title>
<polygon fill="#000006" stroke="transparent" points="169.5,-21 169.5,-39 187.5,-39 187.5,-21 169.5,-21"/>
</g>
<!-- sh0011&#45;&gt;sh0006 -->
<g id="edge1" class="edge">
<title>sh0011&#45;&gt;sh0006:h</title>
<path fill="none" stroke="#00000f" d="M88.19,-30C109.3,-30 139.75,-30 159.08,-30"/>
<polygon fill="#00000f" stroke="#00000f" points="159.26,-33.5 169.26,-30 159.26,-26.5 159.26,-33.5"/>
</g>
<!-- sh0007 -->
<g id="node3" class="node">
<title>sh0007</title>
<polygon fill="#000007" stroke="transparent" points="315.5,-21 315.5,-39 333.5,-39 333.5,-21 315.5,-21"/>
</g>
<!-- sh0012 -->
<g id="node4" class="node">
<title>sh0012</title>
<polygon fill="none" stroke="#00000c" points="467,-54 416,-54 416,-6 467,-6 467,-54"/>
</g>
<!-- sh0007&#45;&gt;sh0012 -->
<g id="edge2" class="edge">
<title>sh0007:h&#45;&gt;sh0012</title>
<path fill="none" stroke="#000013" d="M333.77,-23.01C355.13,-15.27 411.92,-15.33 432.72,-23.19"/>
<polygon fill="#000013" stroke="#000013" points="430.57,-25.95 440.49,-29.67 435.05,-20.57 430.57,-25.95"/>
</g>
<!-- sh0013 -->
<g id="node5" class="node">
<title>sh0013</title>
<polygon fill="none" stroke="#00000d" points="51,-174 0,-174 0,-126 51,-126 51,-174"/>
</g>
<!-- sh0008 -->
<g id="node6" class="node">
<title>sh0008</title>
<polygon fill="#000008" stroke="transparent" points="127.5,-141 127.5,-159 145.5,-159 145.5,-141 127.5,-141"/>
</g>
<!-- sh0013&#45;&gt;sh0008 -->
<g id="edge3" class="edge">
<title>sh0013&#45;&gt;sh0008:h</title>
<path fill="none" stroke="#000017" d="M51.23,-150C71.32,-150 99.19,-150 117.28,-150"/>
<polygon fill="#000017" stroke="#000017" points="117.35,-153.5 127.35,-150 117.35,-146.5 117.35,-153.5"/>
</g>
<!-- sh0010 -->
<g id="node9" class="node">
<title>sh0010</title>
<polygon fill="none" stroke="#00000a" points="281.5,-174 221.5,-174 221.5,-126 281.5,-126 281.5,-174"/>
</g>
<!-- sh0008&#45;&gt;sh0010 -->
<g id="edge5" class="edge">
<title>sh0008:h&#45;&gt;sh0010</title>
<path fill="none" stroke="#00001f" d="M145.63,-143.01C161.21,-137.26 196,-135.82 221.24,-138.67"/>
</g>
<!-- sh0009 -->
<g id="node7" class="node">
<title>sh0009</title>
<polygon fill="#000009" stroke="transparent" points="360.5,-141 360.5,-159 378.5,-159 378.5,-141 360.5,-141"/>
</g>
<!-- sh0014 -->
<g id="node8" class="node">
<title>sh0014</title>
<polygon fill="none" stroke="#00000e" points="507,-174 458,-174 458,-126 507,-126 507,-174"/>
</g>
<!-- sh0009&#45;&gt;sh0014 -->
<g id="edge4" class="edge">
<title>sh0009:h&#45;&gt;sh0014</title>
<path fill="none" stroke="#00001b" d="M378.84,-142.87C388.45,-139.38 405.13,-137.51 422.29,-137.28"/>
<polygon fill="#00001b" stroke="#00001b" points="422.38,-140.78 432.39,-137.33 422.41,-133.78 422.38,-140.78"/>
</g>
<!-- sh0010&#45;&gt;sh0006 -->
<g id="edge8" class="edge">
<title>sh0010&#45;&gt;sh0006:h</title>
<path fill="none" stroke="#000027" d="M237.25,-125.97C222.03,-101.36 198.45,-63.25 186.31,-43.63"/>
<polygon fill="#000027" stroke="#000027" points="187.6,-42.39 183.48,-39.06 184.63,-44.23 187.6,-42.39"/>
</g>
<!-- sh0010&#45;&gt;sh0007 -->
<g id="edge7" class="edge">
<title>sh0010&#45;&gt;sh0007:h</title>
<path fill="none" stroke="#000023" d="M265.75,-125.97C280.97,-101.36 304.55,-63.25 316.69,-43.63"/>
<polygon fill="#000023" stroke="#000023" points="318.37,-44.23 319.52,-39.06 315.4,-42.39 318.37,-44.23"/>
</g>
<!-- sh0010&#45;&gt;sh0009 -->
<g id="edge6" class="edge">
<title>sh0010&#45;&gt;sh0009:h</title>
<path fill="none" stroke="#00002b" d="M277.1,-150C303.3,-150 343.3,-150 360.35,-150"/>
</g>
</g>
</svg>

Could you post your own result with plantuml-1.2023.9.jar?
Thanks!

@travkin79
Copy link
Contributor Author

travkin79 commented Jun 20, 2023

Hi @arnaudroques,
I added the argument to a new file named test-svek.puml and re-run the test. Although PlantUML 1.2023.9 produced the following error message, it created a diagram looking as expected. (Because of the error message, I didn't realize before that PlantUML 1.2023.9 created an SVG file.)
Error java.lang.StringIndexOutOfBoundsException: String index out of range: -2

test-svek.puml

@startuml
 !pragma svek_trace on
skinparam fixCircleLabelOverlapping true
 
() "Product Dubbo" as product_dubbo
() "Member Dubbo" as member_dubbo
() "Guide Dubbo" as guide_dubbo
() "Search Dubbo" as search_dubbo
 
[ME]
[P] - product_dubbo
member_dubbo - [M]
[G] - guide_dubbo
search_dubbo - [S]
 
guide_dubbo <. [ME]
[ME] ..> member_dubbo
[ME] ..> product_dubbo
[ME] .> search_dubbo

footer Rendered with PlantUML version %version()
 
@enduml

svek.dot:

digraph unix {
nodesep=0.486111;
ranksep=0.833333;
remincross=true;
searchsize=500;
sh0011->sh0006:h[arrowtail=none,arrowhead=none,minlen=0,color="#00000F"];
sh0007:h->sh0012[arrowtail=none,arrowhead=none,minlen=0,color="#000013"];
sh0013->sh0008:h[arrowtail=none,arrowhead=none,minlen=0,color="#000017"];
sh0009:h->sh0014[arrowtail=none,arrowhead=none,minlen=0,color="#00001B"];
sh0008:h->sh0010[arrowtail=empty,arrowhead=none,dir=back,arrowsize=0.5,minlen=0,color="#00001F"];
sh0010->sh0009:h[arrowsize=0.5,minlen=0,color="#00002B"];
sh0006 [shape=plaintext,label=<<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" CELLPADDING="0"><TR><TD></TD><TD FIXEDSIZE="TRUE" WIDTH="1.0" HEIGHT="17.609375"></TD><TD></TD></TR><TR><TD FIXEDSIZE="TRUE" WIDTH="38.5" HEIGHT="1.0"></TD><TD BGCOLOR="#000006" FIXEDSIZE="TRUE" WIDTH="18.0" HEIGHT="18.0" PORT="h"></TD><TD FIXEDSIZE="TRUE" WIDTH="38.5" HEIGHT="1.0"></TD></TR><TR><TD></TD><TD FIXEDSIZE="TRUE" WIDTH="1.0" HEIGHT="17.609375"></TD><TD></TD></TR></TABLE>>];

sh0007 [shape=plaintext,label=<<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" CELLPADDING="0"><TR><TD></TD><TD FIXEDSIZE="TRUE" WIDTH="1.0" HEIGHT="17.609375"></TD><TD></TD></TR><TR><TD FIXEDSIZE="TRUE" WIDTH="39.5" HEIGHT="1.0"></TD><TD BGCOLOR="#000007" FIXEDSIZE="TRUE" WIDTH="18.0" HEIGHT="18.0" PORT="h"></TD><TD FIXEDSIZE="TRUE" WIDTH="39.5" HEIGHT="1.0"></TD></TR><TR><TD></TD><TD FIXEDSIZE="TRUE" WIDTH="1.0" HEIGHT="17.609375"></TD><TD></TD></TR></TABLE>>];

sh0008 [shape=plaintext,label=<<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" CELLPADDING="0"><TR><TD></TD><TD FIXEDSIZE="TRUE" WIDTH="1.0" HEIGHT="17.609375"></TD><TD></TD></TR><TR><TD FIXEDSIZE="TRUE" WIDTH="33.0" HEIGHT="1.0"></TD><TD BGCOLOR="#000008" FIXEDSIZE="TRUE" WIDTH="18.0" HEIGHT="18.0" PORT="h"></TD><TD FIXEDSIZE="TRUE" WIDTH="33.0" HEIGHT="1.0"></TD></TR><TR><TD></TD><TD FIXEDSIZE="TRUE" WIDTH="1.0" HEIGHT="17.609375"></TD><TD></TD></TR></TABLE>>];

sh0009 [shape=plaintext,label=<<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" CELLPADDING="0"><TR><TD></TD><TD FIXEDSIZE="TRUE" WIDTH="1.0" HEIGHT="17.609375"></TD><TD></TD></TR><TR><TD FIXEDSIZE="TRUE" WIDTH="36.5" HEIGHT="1.0"></TD><TD BGCOLOR="#000009" FIXEDSIZE="TRUE" WIDTH="18.0" HEIGHT="18.0" PORT="h"></TD><TD FIXEDSIZE="TRUE" WIDTH="36.5" HEIGHT="1.0"></TD></TR><TR><TD></TD><TD FIXEDSIZE="TRUE" WIDTH="1.0" HEIGHT="17.609375"></TD><TD></TD></TR></TABLE>>];

sh0010 [shape=rect,label="",width=0.833333,height=0.661241,color="#00000A"];
sh0011 [shape=rect,label="",width=0.680556,height=0.661241,color="#00000B"];
sh0012 [shape=rect,label="",width=0.708333,height=0.661241,color="#00000C"];
sh0013 [shape=rect,label="",width=0.708333,height=0.661241,color="#00000D"];
sh0014 [shape=rect,label="",width=0.680556,height=0.661241,color="#00000E"];
sh0010->sh0007:h[arrowsize=0.5,minlen=1,color="#000023"];
sh0010->sh0006:h[arrowsize=0.5,minlen=1,color="#000027"];

}

svek.svg:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.44.1 (20200629.0846)
 -->
<!-- Title: unix Pages: 1 -->
<svg width="515pt" height="188pt"
 viewBox="0.00 0.00 515.00 188.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 184)">
<title>unix</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-184 511,-184 511,4 -4,4"/>
<!-- sh0011 -->
<g id="node1" class="node">
<title>sh0011</title>
<polygon fill="none" stroke="#00000b" points="88,-54 39,-54 39,-6 88,-6 88,-54"/>
</g>
<!-- sh0006 -->
<g id="node2" class="node">
<title>sh0006</title>
<polygon fill="#000006" stroke="transparent" points="169.5,-21 169.5,-39 187.5,-39 187.5,-21 169.5,-21"/>
</g>
<!-- sh0011&#45;&gt;sh0006 -->
<g id="edge1" class="edge">
<title>sh0011&#45;&gt;sh0006:h</title>
<path fill="none" stroke="#00000f" d="M88.19,-30C109.3,-30 139.75,-30 159.08,-30"/>
<polygon fill="#00000f" stroke="#00000f" points="159.26,-33.5 169.26,-30 159.26,-26.5 159.26,-33.5"/>
</g>
<!-- sh0007 -->
<g id="node3" class="node">
<title>sh0007</title>
<polygon fill="#000007" stroke="transparent" points="315.5,-21 315.5,-39 333.5,-39 333.5,-21 315.5,-21"/>
</g>
<!-- sh0012 -->
<g id="node4" class="node">
<title>sh0012</title>
<polygon fill="none" stroke="#00000c" points="467,-54 416,-54 416,-6 467,-6 467,-54"/>
</g>
<!-- sh0007&#45;&gt;sh0012 -->
<g id="edge2" class="edge">
<title>sh0007:h&#45;&gt;sh0012</title>
<path fill="none" stroke="#000013" d="M333.77,-23.01C348.55,-17.65 380.3,-16.03 405.34,-18.15"/>
<polygon fill="#000013" stroke="#000013" points="405.28,-21.66 415.6,-19.28 406.05,-14.7 405.28,-21.66"/>
</g>
<!-- sh0013 -->
<g id="node5" class="node">
<title>sh0013</title>
<polygon fill="none" stroke="#00000d" points="51,-174 0,-174 0,-126 51,-126 51,-174"/>
</g>
<!-- sh0008 -->
<g id="node6" class="node">
<title>sh0008</title>
<polygon fill="#000008" stroke="transparent" points="127.5,-141 127.5,-159 145.5,-159 145.5,-141 127.5,-141"/>
</g>
<!-- sh0013&#45;&gt;sh0008 -->
<g id="edge3" class="edge">
<title>sh0013&#45;&gt;sh0008:h</title>
<path fill="none" stroke="#000017" d="M51.23,-150C71.32,-150 99.19,-150 117.28,-150"/>
<polygon fill="#000017" stroke="#000017" points="117.35,-153.5 127.35,-150 117.35,-146.5 117.35,-153.5"/>
</g>
<!-- sh0010 -->
<g id="node9" class="node">
<title>sh0010</title>
<polygon fill="none" stroke="#00000a" points="281.5,-174 221.5,-174 221.5,-126 281.5,-126 281.5,-174"/>
</g>
<!-- sh0008&#45;&gt;sh0010 -->
<g id="edge5" class="edge">
<title>sh0008:h&#45;&gt;sh0010</title>
<path fill="none" stroke="#00001f" d="M145.63,-143.01C161.21,-137.26 196,-135.82 221.24,-138.67"/>
</g>
<!-- sh0009 -->
<g id="node7" class="node">
<title>sh0009</title>
<polygon fill="#000009" stroke="transparent" points="360.5,-141 360.5,-159 378.5,-159 378.5,-141 360.5,-141"/>
</g>
<!-- sh0014 -->
<g id="node8" class="node">
<title>sh0014</title>
<polygon fill="none" stroke="#00000e" points="507,-174 458,-174 458,-126 507,-126 507,-174"/>
</g>
<!-- sh0009&#45;&gt;sh0014 -->
<g id="edge4" class="edge">
<title>sh0009:h&#45;&gt;sh0014</title>
<path fill="none" stroke="#00001b" d="M378.84,-142.87C393.25,-137.63 423.55,-136.05 447.51,-138.14"/>
<polygon fill="#00001b" stroke="#00001b" points="447.33,-141.64 457.66,-139.31 448.13,-134.69 447.33,-141.64"/>
</g>
<!-- sh0010&#45;&gt;sh0006 -->
<g id="edge8" class="edge">
<title>sh0010&#45;&gt;sh0006:h</title>
<path fill="none" stroke="#000027" d="M237.25,-125.97C222.03,-101.36 198.45,-63.25 186.31,-43.63"/>
<polygon fill="#000027" stroke="#000027" points="187.6,-42.39 183.48,-39.06 184.63,-44.23 187.6,-42.39"/>
</g>
<!-- sh0010&#45;&gt;sh0007 -->
<g id="edge7" class="edge">
<title>sh0010&#45;&gt;sh0007:h</title>
<path fill="none" stroke="#000023" d="M265.75,-125.97C280.97,-101.36 304.55,-63.25 316.69,-43.63"/>
<polygon fill="#000023" stroke="#000023" points="318.37,-44.23 319.52,-39.06 315.4,-42.39 318.37,-44.23"/>
</g>
<!-- sh0010&#45;&gt;sh0009 -->
<g id="edge6" class="edge">
<title>sh0010&#45;&gt;sh0009:h</title>
<path fill="none" stroke="#00002b" d="M281.77,-150C307.81,-150 344.19,-150 360.29,-150"/>
</g>
</g>
</svg>

test-svek.svg

<?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="210px" preserveAspectRatio="none" style="width:520px;height:210px;background:#FFFFFF;" version="1.1" viewBox="0 0 520 210" width="520px" zoomAndPan="magnify"><defs/><g><!--entity product_dubbo--><g id="elem_product_dubbo"><ellipse cx="185.5" cy="151" fill="#F1F1F1" rx="8" ry="8" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="95" x="138" y="182.5332">Product Dubbo</text></g><!--entity member_dubbo--><g id="elem_member_dubbo"><ellipse cx="331.5" cy="151" fill="#F1F1F1" rx="8" ry="8" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="97" x="283" y="182.5332">Member Dubbo</text></g><!--entity guide_dubbo--><g id="elem_guide_dubbo"><ellipse cx="143.5" cy="31" fill="#F1F1F1" rx="8" ry="8" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="84" x="101.5" y="62.5332">Guide Dubbo</text></g><!--entity search_dubbo--><g id="elem_search_dubbo"><ellipse cx="376.5" cy="31" fill="#F1F1F1" rx="8" ry="8" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="91" x="331" y="62.5332">Search Dubbo</text></g><!--entity ME--><g id="elem_ME"><rect fill="#F1F1F1" height="47.6094" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="60" x="228.5" y="7"/><rect fill="#F1F1F1" height="10" style="stroke:#181818;stroke-width:0.5;" width="15" x="268.5" y="12"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="266.5" y="14"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="266.5" y="18"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="20" x="243.5" y="41.5332">ME</text></g><!--entity P--><g id="elem_P"><rect fill="#F1F1F1" height="47.6094" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="49" x="46" y="127"/><rect fill="#F1F1F1" height="10" style="stroke:#181818;stroke-width:0.5;" width="15" x="75" y="132"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="73" y="134"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="73" y="138"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="9" x="61" y="161.5332">P</text></g><!--entity M--><g id="elem_M"><rect fill="#F1F1F1" height="47.6094" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="51" x="423" y="127"/><rect fill="#F1F1F1" height="10" style="stroke:#181818;stroke-width:0.5;" width="15" x="454" y="132"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="452" y="134"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="452" y="138"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="11" x="438" y="161.5332">M</text></g><!--entity G--><g id="elem_G"><rect fill="#F1F1F1" height="47.6094" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="51" x="7" y="7"/><rect fill="#F1F1F1" height="10" style="stroke:#181818;stroke-width:0.5;" width="15" x="38" y="12"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="36" y="14"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="36" y="18"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="11" x="22" y="41.5332">G</text></g><!--entity S--><g id="elem_S"><rect fill="#F1F1F1" height="47.6094" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="49" x="465" y="7"/><rect fill="#F1F1F1" height="10" style="stroke:#181818;stroke-width:0.5;" width="15" x="494" y="12"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="492" y="14"/><rect fill="#F1F1F1" height="2" style="stroke:#181818;stroke-width:0.5;" width="4" x="492" y="18"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="9" x="480" y="41.5332">S</text></g><!--link P to product_dubbo--><g id="link_P_product_dubbo"><path d="M95.19,151 C116.3,151 146.75,151 166.08,151 " fill="none" id="P-product_dubbo" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="166.08" x2="176.26" y1="151" y2="151"/></g><!--link member_dubbo to M--><g id="link_member_dubbo_M"><path d="M340.77,157.99 C355.55,163.35 387.3,164.97 412.34,162.85 " fill="none" id="member_dubbo-M" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="412.34" x2="422.6" y1="162.85" y2="161.72"/></g><!--link G to guide_dubbo--><g id="link_G_guide_dubbo"><path d="M58.23,31 C78.32,31 106.19,31 124.28,31 " fill="none" id="G-guide_dubbo" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="124.28" x2="134.35" y1="31" y2="31"/></g><!--link search_dubbo to S--><g id="link_search_dubbo_S"><path d="M385.84,38.13 C400.25,43.37 430.55,44.95 454.51,42.86 " fill="none" id="search_dubbo-S" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="454.51" x2="464.66" y1="42.86" y2="41.69"/></g><!--reverse link guide_dubbo to ME--><g id="link_guide_dubbo_ME"><path d="M152.63,37.99 C168.21,43.74 203,45.18 228.24,42.33 " fill="none" id="guide_dubbo-backto-ME" style="stroke:#181818;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/></g><!--link ME to member_dubbo--><g id="link_ME_member_dubbo"><path d="M272.75,55.03 C287.97,79.64 311.55,117.75 323.69,137.37 " fill="none" id="ME-to-member_dubbo" style="stroke:#181818;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="#181818" points="326.52,141.94,325.1805,132.1827,323.8867,137.6896,318.3798,136.3959,326.52,141.94" style="stroke:#181818;stroke-width:1.0;"/></g><!--link ME to product_dubbo--><g id="link_ME_product_dubbo"><path d="M244.25,55.03 C229.03,79.64 205.45,117.75 193.31,137.37 " fill="none" id="ME-to-product_dubbo" style="stroke:#181818;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="#181818" points="190.48,141.94,198.6202,136.3959,193.1133,137.6896,191.8195,132.1827,190.48,141.94" style="stroke:#181818;stroke-width:1.0;"/></g><!--link ME to search_dubbo--><g id="link_ME_search_dubbo"><path d="M288.77,31 C314.81,31 351.19,31 367.29,31 " fill="none" id="ME-to-search_dubbo" style="stroke:#181818;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/></g><text fill="#888888" font-family="sans-serif" font-size="10" lengthAdjust="spacing" textLength="199" x="153.5" y="200.4141">Rendered with PlantUML version 1.2023.9</text><!--SRC=[NP11QiCm44NtEiLle90iuXE4RDgIJKnDGrR61DcQE2As94PoskDNjaEHkn7IcyVyqU35iMnx2V-W-oMmR0ZM27_NnacMFQxwvqrpqz5HrjHzFeWxwPmsBG8F923M6wmAjcfe0jw7khOhI0ytauiQoUJarDV4YT9F834EWrQK2EtuJkedajpS4i5Fu6b0bFb79SgYmlPVV9eKYsKUjSEefGbfir4wLR5b8c2NOKw81x9il_p07rr6ptY_75LShGrn5rza534fVEjmGz594yxv4N77Nbk3r-TblH7u1G00]--></g></svg>

arnaudroques added a commit that referenced this issue Jun 21, 2023
@arnaudroques
Copy link
Contributor

We have removed the error message in last snapshot.

However, it looks like some arrows are missing, right?

@travkin79
Copy link
Contributor Author

Thank you. You're right. Creating the diagram without the parameter fixCircleLabelOverlapping creates the following diagram with 4 arrows.

image

Adding the parameter fixCircleLabelOverlapping results in a diagram with only 3 arrows, there's a missing arrow on the left of the diargam.

image

@travkin79
Copy link
Contributor Author

I suggest to close this issue, since the main problem is fixed. I added the case with the missing arrow head to the new issue #1491.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants