davsclaus opened a new pull request, #26939:
URL: https://github.com/apache/camel/pull/26939

   Fixes [CAMEL-25056](https://issues.apache.org/jira/browse/CAMEL-25056): bugs 
in the backlog debugger and tracer found in a deep review. Each fix has a test 
in `BacklogDebuggerEdgeCasesTest` or `BacklogTracerEdgeCasesTest` 
(camel-management) that fails without it.
   
   **Debugger**
   1. **`stepOver()` when not single stepping switches off all breakpoints for 
good.** It set the step-over mode, which only the next single step resets; at a 
breakpoint (the first stop in `camel debug`) or at the last step there is none, 
so every breakpoint was skipped afterwards. Step over is now only set when 
single stepping, and reset when the single-stepped exchange completes.
   2. **`setSuspendMode(true)` (`camel.debug.waitForAttach`) does not suspend 
anything**, and suspend mode from the environment turned off with 
`setSuspendMode(false)` kept every message waiting forever. Setting the suspend 
mode now suspends or resumes message processing.
   3. **`removeAllBreakpoints()` only removes breakpoints with a suspended 
exchange.**
   4. **Changing a breakpoint to a conditional one does not set its condition.**
   5. **A breakpoint condition that fails to evaluate fails the exchange.** It 
now logs a WARN and the breakpoint is skipped.
   6. **`setExchangePropertyOnBreakpoint`/`setExchangeVariableOnBreakpoint` 
keep the type of the header with the same name** instead of the 
property/variable.
   7. **JMX `evaluateExpressionAtBreakpoint(nodeId, language, expression)` 
throws `NullPointerException`** when the node is not suspended or the result is 
null.
   
   **Tracer**
   8. **A `traceFilter` with a colon is taken as a language name**: 
`${header.foo} == 'a:b'` or `${date:now}` failed with 
`NoSuchLanguageException`. A prefix is now only a language when it names one, 
and it is removed from the predicate (`simple:...` was always true before).
   9. **A `traceFilter` that fails to evaluate fails the traced exchange.**
   10. **`nodeLabel` in the JSON of a traced message is escaped twice** 
(`mock:a\/b` when read back), which the TUI showed as-is.
   11. **The XML dump is not well-formed** when an endpoint uri, location, node 
id or key has `&` or `<`.
   
   **Not changed (for a later look)**
   - The latest message history queue may throw "Queue full" in append mode 
(reported by the review, not reproduced).
   - The history capture stays stuck when `tracePattern`/`traceFilter` excludes 
a route's first or last event.
   - A step breakpoint can replace another exchange suspended at the same node, 
and `step()` resumes exchanges suspended at other breakpoints.
   - The debugger is not prepared for shutdown, so suspended exchanges wait 
until the shutdown timeout.
   - `includeException` of the debugger is not used, and a refreshed suspended 
message loses its first/last flags.
   
   The whole `camel-core` and `camel-management` test suites pass (one known 
flaky file-reload test passed on rerun).
   
   _Claude Code on behalf of Claus Ibsen_
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to