[ 
https://issues.apache.org/jira/browse/CAMEL-25113?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claus Ibsen resolved CAMEL-25113.
---------------------------------
    Resolution: Fixed

Fixed by https://github.com/apache/camel/pull/27019

> camel-core - onException configuration: fix bugs found in a deep review
> -----------------------------------------------------------------------
>
>                 Key: CAMEL-25113
>                 URL: https://issues.apache.org/jira/browse/CAMEL-25113
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>            Reporter: Claus Ibsen
>            Assignee: Claus Ibsen
>            Priority: Minor
>             Fix For: 4.23.0
>
>
> A review of the onException configuration found these bugs:
> # The {{onWhen}} predicate of {{onException}} is not created when the route 
> is created (unlike {{handled}}, {{continued}}, {{retryWhile}} and the onWhen 
> of other EIPs), but evaluated from the model at runtime. So property 
> placeholders of route templates in the onWhen fail at runtime ({{Property 
> with key [code] not found}}), and an invalid onWhen expression is not 
> detected when the route is created but only when an exception is thrown.
> # An {{onException}} that is only configured with {{redeliveryPolicyRef}} (or 
> {{onExceptionOccurredRef}}) fails with {{is not configured}} (CAMEL-11080 
> only fixed this for the redeliveryPolicy object).
> # A class name in {{onException}} that is not an exception (such as 
> {{java.lang.String}} in XML/YAML) is accepted and never matches; it now fails 
> when the route is created.
> Documentation:
> * How Camel selects the onException is described as "first match starting 
> from the bottom (nested caused by)", but Camel selects the closest match 
> across the thrown exception and all its causes (and the most nested one when 
> equally close), a route scoped onException wins over a context scoped when 
> equally close, and when the same exception is configured more than once the 
> last one is used (and the ones from route configurations are added after the 
> ones in the RouteBuilder).
> * When any redelivery option is configured on an onException, its redelivery 
> policy is based on the error handler (and uses its maximumRedeliveries).
> _Claude Code on behalf of Claus Ibsen_



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

Reply via email to