You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@camel.apache.org by "Hadrian Zbarcea (JIRA)" <ji...@apache.org> on 2008/04/24 23:32:43 UTC

[jira] Updated: (CAMEL-482) Incorrect behavior of intercept() if more than one route configured

     [ https://issues.apache.org/activemq/browse/CAMEL-482?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Hadrian Zbarcea updated CAMEL-482:
----------------------------------

    Description: 
With the RouteBuilder defining more than one route, the intercept() will actually have one instance of the interceptor shared among routes which causes the odd behavior of proceeding to a destination in all routes.  For instance in the example below, sending a message to "direct:foo" will cause both "mock:one" and "mock:two" to receive a message.

{code}
    protected RouteBuilder createRouteBuilder() throws Exception {
        return new RouteBuilder() {
            public void configure() throws Exception {
                // lets log all steps in all routes (must use proceed to let the exchange continue its
                // normal route path instead of swallowing it here by our intercepter.
                intercept().to("log:foo").proceed();

                from("direct:foo").to("mock:one");
                from("direct:bar").to("mock:two");
            }
        };
    }
{code}


  was:
With the RouteBuilder defining more than one route, the intercept() will actually have one instance of the interceptor shared among routes which causes the odd behavior of proceeding to a destination in all routes.  For instance in the example below, sending a message to "direct:foo" will cause both "mock:one" and "mock:two" to receive a message.

    protected RouteBuilder createRouteBuilder() throws Exception {
        return new RouteBuilder() {
            public void configure() throws Exception {
                // lets log all steps in all routes (must use proceed to let the exchange continue its
                // normal route path instead of swallowing it here by our intercepter.
                intercept().to("log:foo").proceed();

                from("direct:foo").to("mock:one");
                from("direct:bar").to("mock:two");
            }
        };
    }




> Incorrect behavior of intercept() if more than one route configured
> -------------------------------------------------------------------
>
>                 Key: CAMEL-482
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-482
>             Project: Apache Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 1.3.0
>            Reporter: Hadrian Zbarcea
>            Assignee: Hadrian Zbarcea
>             Fix For: 1.4.0
>
>
> With the RouteBuilder defining more than one route, the intercept() will actually have one instance of the interceptor shared among routes which causes the odd behavior of proceeding to a destination in all routes.  For instance in the example below, sending a message to "direct:foo" will cause both "mock:one" and "mock:two" to receive a message.
> {code}
>     protected RouteBuilder createRouteBuilder() throws Exception {
>         return new RouteBuilder() {
>             public void configure() throws Exception {
>                 // lets log all steps in all routes (must use proceed to let the exchange continue its
>                 // normal route path instead of swallowing it here by our intercepter.
>                 intercept().to("log:foo").proceed();
>                 from("direct:foo").to("mock:one");
>                 from("direct:bar").to("mock:two");
>             }
>         };
>     }
> {code}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.