This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push: new 6498af9cedd CAMEL-20433: camel-jbang - Log command sorting when logging muliple integrations can cause sort error. 6498af9cedd is described below commit 6498af9cedd35c507f5ded6c37603a40fda1a926 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Sat Feb 17 10:42:14 2024 +0100 CAMEL-20433: camel-jbang - Log command sorting when logging muliple integrations can cause sort error. --- .../jbang/core/commands/action/CamelLogAction.java | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelLogAction.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelLogAction.java index cc3ceeb5dc3..2310d30959f 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelLogAction.java +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelLogAction.java @@ -290,7 +290,7 @@ public class CamelLogAction extends ActionBaseCommand { // only sort if there are multiple Camels running if (names.size() > 1) { // sort lines - final Map<String, String> lastTimestamp = new HashMap<>(); + final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); lines.sort((l1, l2) -> { l1 = unescapeAnsi(l1); l2 = unescapeAnsi(l2); @@ -302,12 +302,22 @@ public class CamelLogAction extends ActionBaseCommand { String t2 = StringHelper.after(l2, "| "); t2 = StringHelper.before(t2, " "); - if (t1 == null) { - t1 = lastTimestamp.get(n1); + // there may be a stacktrace and no timestamps + if (t1 != null) { + try { + sdf.parse(t1); + } catch (ParseException e) { + t1 = null; + } } - if (t2 == null) { - t2 = lastTimestamp.get(n2); + if (t2 != null) { + try { + sdf.parse(t2); + } catch (ParseException e) { + t2 = null; + } } + if (t1 == null && t2 == null) { return 0; } else if (t1 == null) { @@ -315,8 +325,6 @@ public class CamelLogAction extends ActionBaseCommand { } else if (t2 == null) { return 1; } - lastTimestamp.put(n1, t1); - lastTimestamp.put(n2, t2); return t1.compareTo(t2); }); }