This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch feat/camel-tui
in repository https://gitbox.apache.org/repos/asf/camel.git

commit a2774db841b838b9a2b57e1466a1f84cb51657f8
Author: Claus Ibsen <[email protected]>
AuthorDate: Mon May 18 12:11:20 2026 +0200

    TUI: fix synthetic trace events missing from message history for mock 
rest-openapi
    
    BacklogTracer.traceBeforeNode/traceAfterNode were passing null as routeId in
    the DefaultBacklogTracerEventMessage constructor. These methods fire inside
    RestOpenApiProcessorAdvice.before() which runs BEFORE the route pipeline,
    so our events become the head of provisionalHistoryQueue with routeId=null.
    
    When BacklogTracerRouteAdvice.after() later fires to complete history, the
    original check compares event.routeId against head.routeId (null), making
    original=false and preventing history completion.
    
    Fix: pass fromRouteId as routeId in both methods, and set isLast=false in
    traceAfterNode so BacklogTracerRouteAdvice.after() (not our event) triggers
    history completion — at which point all our synthetic events are already in
    provisionalHistoryQueue and get included in completeHistoryQueue.
    
    Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
---
 .../src/main/java/org/apache/camel/impl/debugger/BacklogTracer.java   | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/debugger/BacklogTracer.java
 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/debugger/BacklogTracer.java
index 0bad0466d434..6b13e4f7b4f6 100644
--- 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/debugger/BacklogTracer.java
+++ 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/debugger/BacklogTracer.java
@@ -160,7 +160,7 @@ public class BacklogTracer extends ServiceSupport 
implements org.apache.camel.sp
         JsonObject data = MessageHelper.dumpAsJSonObject(exchange.getIn(), 
isIncludeExchangeProperties(),
                 isIncludeExchangeVariables(), true, true, 
isBodyIncludeStreams(), isBodyIncludeFiles(), getBodyMaxChars());
         DefaultBacklogTracerEventMessage event = new 
DefaultBacklogTracerEventMessage(
-                camelContext, false, false, incrementTraceCounter(), 
timestamp, source, fromRouteId, null, toNode,
+                camelContext, false, false, incrementTraceCounter(), 
timestamp, source, fromRouteId, fromRouteId, toNode,
                 toNodeParentId, null, null, toNodeShortName, toNodeLabel, 
level,
                 exchangeId, correlationExchangeId, false, false, data);
         traceEvent(event);
@@ -184,7 +184,7 @@ public class BacklogTracer extends ServiceSupport 
implements org.apache.camel.sp
         JsonObject data = MessageHelper.dumpAsJSonObject(exchange.getIn(), 
isIncludeExchangeProperties(),
                 isIncludeExchangeVariables(), true, true, 
isBodyIncludeStreams(), isBodyIncludeFiles(), getBodyMaxChars());
         DefaultBacklogTracerEventMessage event = new 
DefaultBacklogTracerEventMessage(
-                camelContext, false, true, incrementTraceCounter(), timestamp, 
source, fromRouteId, null, toNode,
+                camelContext, false, false, incrementTraceCounter(), 
timestamp, source, fromRouteId, fromRouteId, toNode,
                 toNodeParentId, null, null, toNodeShortName, toNodeLabel, 
level,
                 exchangeId, correlationExchangeId, false, false, data);
         traceEvent(event);

Reply via email to