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