You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Serge Smertin (JIRA)" <ji...@apache.org> on 2014/09/05 20:30:28 UTC

[jira] [Created] (CAMEL-7786) Global exception handling breaks routeId

Serge Smertin created CAMEL-7786:
------------------------------------

             Summary: Global exception handling breaks routeId
                 Key: CAMEL-7786
                 URL: https://issues.apache.org/jira/browse/CAMEL-7786
             Project: Camel
          Issue Type: Bug
    Affects Versions: 2.12.0
            Reporter: Serge Smertin


This is somehow related to CAMEL-2109. Using Java DSL and code like

{code}
onException(Error.class).to("errorChannel");
from(somethingChannel).routeId("triggerDoingSomething")
                .inOnly("bean:foo")
                .inOnly("bean:blah");

/// later doing

context.getRouteDefinition("triggerDoingSomething").adviceWith(context, new AdviceWithRouteBuilder() {
                @Override
                public void configure() throws Exception {
                    weaveAddFirst().process(new Processor() {
                        @Override
                        public void process(Exchange exchange) throws Exception {
                            dumpSomeValues();
                        }
                    });
                }
            });
{code}

does not work, as {code}OnException[[class java.lang.Error] -> [To[errorChannel]]]{code} has no parent and `AdviseWithTask` never gets `match = true` in a loop. I guess it would not even work with multiple OnException definitions.

workaround? `weaveByType(OnExceptionDefinition.class)`? Ideas? Is it the right use of route identifiers?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)