camel-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aaron Whiteside (JIRA)" <j...@apache.org>
Subject [jira] [Created] (CAMEL-9763) onCompletion() removes all evidence of why an exchange failed.
Date Fri, 25 Mar 2016 22:55:25 GMT
Aaron Whiteside created CAMEL-9763:
--------------------------------------

             Summary: 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


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)

Mime
View raw message