在 Plantuml 中,WARNING : CROSSX 警告什么?

问题描述

在 plantuml 中,我收到了一个奇怪的警告。我已经将问题的根源追溯到:当创建一个序列图时,从一个项目返回到它本身。

最小的例子

@startuml
self ->x self:
@enduml

产生此警告:

$ plantuml minimal.plantuml 
WARNING : CROSSX
WARNING : CROSSX

但仍然能够生成我期望的图像。

self ->x self

plantuml 在抱怨什么?这个警告是什么意思?

$ plantuml -version
PlantUML version 1.2018.13 (Tue Nov 27 02:11:51 JST 2018)
(GPL source distribution)
Java Runtime: OpenJDK Runtime Environment
JVM: OpenJDK 64-Bit Server VM
Java Version: 11.0.11+9-Ubuntu-0ubuntu2.20.04
Operating System: Linux
OS Version: 5.8.0-48-generic
Default Encoding: UTF-8
Language: en

解决方法

此警告存在于仍包含在主要 Linux 发行版中的旧版本中。

警告是在 src/net/sourceforge/plantuml/sequencediagram/graphic/Step1Message.java

中生成的
 if (m.getArrowConfiguration().getDressing2().getHead() == ArrowHead.CROSSX) {
            result = result.withHead2(m.getArrowConfiguration().getDressing2().getHead());
            System.err.println("WARNING : CROSSX");
        }
        result = result.withPart(m.getArrowConfiguration().getPart());
 }

2019 年 9 月没有任何 clue in the commit message it was removed from upstream