This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch topology-external-endpoints in repository https://gitbox.apache.org/repos/asf/camel.git
commit 3bc920effa008f0a52fa2a78d465e903a1d7538c Author: Claus Ibsen <[email protected]> AuthorDate: Tue Jun 2 11:57:38 2026 +0200 Fix ANSI coloring for multiple external nodes on the same row Sort counter positions right-to-left (descending column) within each row before applying ANSI escape codes. This prevents insertions from shifting character offsets for subsequent positions on the same line. Co-Authored-By: Claude Opus 4.6 <[email protected]> --- .../main/java/org/apache/camel/diagram/TopologyAsciiRenderer.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/components/camel-diagram/src/main/java/org/apache/camel/diagram/TopologyAsciiRenderer.java b/components/camel-diagram/src/main/java/org/apache/camel/diagram/TopologyAsciiRenderer.java index 5f49104308c1..84bbbd065f2f 100644 --- a/components/camel-diagram/src/main/java/org/apache/camel/diagram/TopologyAsciiRenderer.java +++ b/components/camel-diagram/src/main/java/org/apache/camel/diagram/TopologyAsciiRenderer.java @@ -18,6 +18,7 @@ package org.apache.camel.diagram; import java.util.ArrayList; import java.util.Arrays; +import java.util.Comparator; import java.util.List; import org.apache.camel.diagram.TopologyLayoutEngine.TopologyLayoutEdge; @@ -364,7 +365,10 @@ public class TopologyAsciiRenderer { return plain; } String[] lines = plain.split("\n", -1); - for (CounterPos cp : counterPositions) { + List<CounterPos> sorted = new ArrayList<>(counterPositions); + sorted.sort( + Comparator.comparingInt(CounterPos::row).thenComparing(Comparator.comparingInt(CounterPos::col).reversed())); + for (CounterPos cp : sorted) { if (cp.row >= 0 && cp.row < lines.length) { String line = lines[cp.row]; if (cp.col >= 0 && cp.col + cp.length <= line.length()) {
