Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.2.0, 2.3.0, 2.4.0, 2.5.0, 2.6.0, 2.7.0, 2.7.1
-
None
-
ubuntu 10.04
java version "1.6.0_22"
Java HotSpot(TM) Client VM (build 17.1-b03, mixed mode, sharing)
-
Patch Available
Description
In routes with a split step, when my wrapProcessorInInterceptors method is called, the ProcessorDefinition<?> paremeter is referencing the Split definition instead of steps inside it.
For example, for the route:
from("direct:a").routeId("route:a")
.split(xpath("//a/b")).id("task:split.products")
.log("*** splited ::: body : ${body} ").id("task:handle.that")
.setHeader("insplit",constant("in-split"))
.end()
.log("* aftersplit ::: body : ${body}").id("task:after.split");
for steps inside the split the ProcessorDefinition is referencing the splitdefinition, while i think it should point to the log and setHeader steps.
It can be easily fixed, in class:::
org.apache.camel.processor.DefaultChannel
in the method initChannel, changing
target = strategy.wrapProcessorInInterceptors(routeContext.getCamelContext(), outputDefinition, target, next);
by this:
target = strategy.wrapProcessorInInterceptors(routeContext.getCamelContext(), traceDef, target, next);