[ 
https://issues.apache.org/jira/browse/CAMEL-7946?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14182528#comment-14182528
 ] 

Willem Jiang commented on CAMEL-7946:
-------------------------------------

It's always a good practise to specify the Exchange pattern explicitly in your 
case, as camel is trying its best to look up the message from the exchange[1].
If you didn't specify the Exchange pattern in the route, the exchange pattern 
could be decided by the exchange which you send to the camel route or the from 
endpoint. 
[1]http://camel.apache.org/using-getin-or-getout-methods-on-exchange.html

> Backward compatibility of RoutingSlip/RecipientList statement is violated
> -------------------------------------------------------------------------
>
>                 Key: CAMEL-7946
>                 URL: https://issues.apache.org/jira/browse/CAMEL-7946
>             Project: Camel
>          Issue Type: Bug
>    Affects Versions: 2.13.2
>            Reporter: Tomas Hanus
>              Labels: core
>
> Currently we fixed issue in production of route that uses routingSlip 
> statement for dynamic resolution of endpoint. This route is synchronous when 
> next endpoint expects some result from previous endpoint that was resolved by 
> routingSlip. Problem is, and we don't know how long (camel version), that 
> without explicit statement which defines ExchangePattern as *InOut* before 
> using routingSlip unexpected behaviour occurs. It looks like *InOnly* by 
> default. 
> *wrong approach*:
> .recipientList(method(MyRoute.class, "getUri")).id(ENDPOINT_ID_EXT);
> *correct behaviour*:
> // for request/reply
> .setExchangePattern(ExchangePattern.InOut)
> .recipientList(method(MyRoute.class, "getUri")).id(ENDPOINT_ID_EXT);
> Because this change is *not backwards compatible* and has a very unexpected 
> behavior and this issue is difficult to identify.



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

Reply via email to