[
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)