This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch fix/camel-tui-tamboui-improvements in repository https://gitbox.apache.org/repos/asf/camel.git
commit f7ebf522bc554dd399e8f14372262c08b5c61465 Author: Claus Ibsen <[email protected]> AuthorDate: Fri May 15 17:26:01 2026 +0200 CAMEL-23514: Fix O(n²) getTraceExchangeIds and remove no-op runOnRenderThread Replace List.contains() loop with LinkedHashSet for O(1) deduplication while preserving insertion order. Remove the empty runOnRenderThread lambda that was called after background refresh with no effect. Co-Authored-By: Claude Sonnet 4.6 <[email protected]> --- .../camel/dsl/jbang/core/commands/tui/CamelMonitor.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/CamelMonitor.java b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/CamelMonitor.java index a1c670e97154..e6422621246b 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/CamelMonitor.java +++ b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/CamelMonitor.java @@ -27,6 +27,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.util.LinkedHashMap; +import java.util.LinkedHashSet; import java.util.LinkedList; import java.util.List; import java.util.Map; @@ -2444,13 +2445,14 @@ public class CamelMonitor extends CamelCommand { private List<String> getTraceExchangeIds() { List<TraceEntry> current = traces.get(); - List<String> ids = new ArrayList<>(); + // LinkedHashSet: O(1) contains, preserves first-seen insertion order + LinkedHashSet<String> seen = new LinkedHashSet<>(); for (TraceEntry e : current) { - if (e.exchangeId != null && !ids.contains(e.exchangeId)) { - ids.add(e.exchangeId); + if (e.exchangeId != null) { + seen.add(e.exchangeId); } } - return ids; + return new ArrayList<>(seen); } private List<TraceEntry> getTraceSteps(String exchangeId) { @@ -2913,8 +2915,6 @@ public class CamelMonitor extends CamelCommand { } finally { refreshInProgress.set(false); } - runner.runOnRenderThread(() -> { - }); }); }
