[
https://issues.apache.org/jira/browse/CAMEL-10910?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen resolved CAMEL-10910.
---------------------------------
Resolution: Fixed
> Revisit if Pipeline should wrap single processor or not
> -------------------------------------------------------
>
> Key: CAMEL-10910
> URL: https://issues.apache.org/jira/browse/CAMEL-10910
> Project: Camel
> Issue Type: Task
> Components: camel-core
> Reporter: Tomohisa Igarashi
> Assignee: Claus Ibsen
> Priority: Major
> Fix For: 3.0.0, 3.0.0.M5
>
>
> I noticed that if eventDrivenProcessors contains only one processor, IN
> message is not copied to OUT even when exchange pattern is InOut while it
> does if it contains multiple processors.
> eventDrivenProcessors are wrapped with Pipeline here when initiating a camel
> route here:
> https://github.com/apache/camel/blob/master/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteContext.java#L161
> But if there's only one event driven processor, the processor itself is used
> instead of wrapping with Pipeline:
> https://github.com/apache/camel/blob/master/camel-core/src/main/java/org/apache/camel/processor/Pipeline.java#L57
> Pipeline copies the IN message to OUT if it's InOut and OUT message doesn't
> exist:
> https://github.com/apache/camel/blob/master/camel-core/src/main/java/org/apache/camel/processor/Pipeline.java#L107
> So the IN->OUT copy happens only if multiple processors exist. It means that
> whether the response message is returned as OUT or IN depends on if the route
> results in single processor or not. I think it looks a bit confusing and
> wondering if we can just wrap it with the Pipleline even if there's single
> processor.
> Having said that as this has been same for 10 years, we can't change this
> behavior in 2.x as it would break backward compatibility. Let's revisit in
> 3.0.
--
This message was sent by Atlassian JIRA
(v7.6.14#76016)