You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@servicemix.apache.org by "Gert Vanthienen (JIRA)" <ji...@apache.org> on 2010/10/25 12:41:40 UTC

[jira] Resolved: (SMXCOMP-816) Only use Fault message in JBI if the Camel out message has the fault flag set

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

Gert Vanthienen resolved SMXCOMP-816.
-------------------------------------

    Resolution: Fixed

Fixed in http://svn.apache.org/viewvc?view=revision&revision=1027034
Thanks to Steve and Björn for reporting the issue in http://servicemix.396122.n5.nabble.com/JBI-Exception-Propagation-Advice-td3211854.html#a3219106

> Only use Fault message in JBI if the Camel out message has the fault flag set
> -----------------------------------------------------------------------------
>
>                 Key: SMXCOMP-816
>                 URL: https://issues.apache.org/activemq/browse/SMXCOMP-816
>             Project: ServiceMix Components
>          Issue Type: Bug
>          Components: servicemix-camel
>    Affects Versions: servicemix-camel-2010.01
>            Reporter: Gert Vanthienen
>            Assignee: Gert Vanthienen
>             Fix For: servicemix-camel-2010.02
>
>
> The Camel API no longer has a dedicated Fault message, instead it uses the Out message with a flag set on it to indicate it's a fault.  We should take that into account when replying to the JBI MessageExchange in case of a failure. 
> Our current implementation is broken when a route returns an Out message (non-fault) *and* throws an Exception as well, e.g. breaking a route like 
> {code:java}
> from("direct:test")
>      .doTry()
>           .to("log:Starting JBI Test")
>           .to("jbi:endpoint:urn:testcase:testing?mep=in-out")
>      .doCatch(SerialException.class)
>           .to("log:Caught Serial exception")
>      .end();
> from("jbi:endpoint:urn:testcase:testing?mep=in-out")
>      .errorHandler(noErrorHandler())
>      .to("log:about to throw exception?level=ERROR")
>      .throwException(new SerialException("Test"));
> {code}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.