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)