Uploaded image for project: 'Camel'
  1. Camel
  2. CAMEL-3928

custom interceptor - wrapProcessorInInterceptors - passing parent Description on Split

    XMLWordPrintableJSON

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
    • 2.7.3, 2.8.0
    • camel-core
    • 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);

      Attachments

        Activity

          People

            davsclaus Claus Ibsen
            javier.arilos@gmail.com Javier Arias
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: