Claus Ibsen created CAMEL-25484:
-----------------------------------

             Summary: camel-core - a dev mode reload that cuts off an in-flight 
exchange logs a full ERROR, though the work is retried
                 Key: CAMEL-25484
                 URL: https://issues.apache.org/jira/browse/CAMEL-25484
             Project: Camel
          Issue Type: Improvement
          Components: camel-core
            Reporter: Claus Ibsen


Follow-up of CAMEL-25365, which made the message say why the exchange cannot 
continue.

In dev mode (camel run --dev), saving a route file while an exchange is in 
flight reloads the routes. An exchange cut off by the reload is logged by the 
error handler as a full failure:

{noformat}
ERROR ... DefaultErrorHandler : Failed delivery for (MessageId: ...) at 
picked-lines[log2] aggregator.camel.yaml:23. Exhausted after delivery attempt: 
1 caused by: ...
Message History ...
Stacktrace ...
java.util.concurrent.RejectedExecutionException: The exchange cannot continue: 
its route is being stopped or reloaded
WARN  ... GenericFileOnCompletion : Rollback file strategy: ... for file: 
GenericFile[order-1001.json]
{noformat}

Nothing is lost: the file consumer rolls the file back and picks it up again 
after the reload, and the result is right. But every save while messages flow 
prints ERROR blocks with stack traces, which reads as a bug in the route to the 
person (or the agent) who just saved it.

Seen in the local-model benchmark: route-aggregator (picked-lines sends to 
direct:shipment, which the reload stopped first; the sender waited ~8 s, then 
was cut off) logged this after the last save in 5 of 5 runs, and the step was 
scored as failed although its final state was right. It hit 7 apps in one 
series and 5 in the next.

Proposal: an exchange cut off by a reload (RedeliveryErrorHandler sees the 
route being stopped or reloaded) is logged as one WARN line, without "Exhausted 
after delivery attempt", message history and stack trace, saying the reload cut 
it off and whether it will be redelivered (for example, the file consumer 
rolled the file back). A forced stop of the CamelContext can keep the current 
logging.

_Claude Code on behalf of davsclaus_



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to