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

Claus Ibsen resolved CAMEL-9763.
--------------------------------
    Resolution: Duplicate
      Assignee: Claus Ibsen

See CAMEL-9504

> onCompletion() removes all evidence of why an exchange failed.
> --------------------------------------------------------------
>
>                 Key: CAMEL-9763
>                 URL: https://issues.apache.org/jira/browse/CAMEL-9763
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-core
>    Affects Versions: 2.16.2
>            Reporter: Aaron Whiteside
>            Assignee: Claus Ibsen
>
> onCompletion() removes all evidence of why an exchange failed. This makes it 
> impossible to use the routing DSL/XML's onCompletion processing for error 
> conditions where one needs to know the cause of the error.
> OnCompletionSynchronizationAfterConsumer::onFailure() and 
> OnCompletionProcessor::doProcess() remove Exchange.EXCEPTION_CAUGHT with 
> comments to say this is to allow the exchange to be processed successfully..
> I compare this to the behavior of the onException()'s 
> CatchProcessor::process() where Exchange.EXCEPTION_CAUGHT is not removed 
> before being passed on to the child (processor) for handling.
> Further this behavior is not documented on the wiki.
> I would propose that onCompletion() maintain the fault/cause of the error 
> just like the onException() construct does.
> I can understand why it removes other things that may cause issues, but not 
> quite the Exchange.EXCEPTION_CAUGHT.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to