You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Claus Ibsen (JIRA)" <ji...@apache.org> on 2014/12/17 08:22:13 UTC

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

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

Claus Ibsen resolved CAMEL-7786.
--------------------------------
    Resolution: Cannot Reproduce
      Assignee: Claus Ibsen

> Global exception handling breaks routeId
> ----------------------------------------
>
>                 Key: CAMEL-7786
>                 URL: https://issues.apache.org/jira/browse/CAMEL-7786
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 2.12.0
>            Reporter: Serge Smertin
>            Assignee: Claus Ibsen
>
> 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.
> Exception thrown with this code is generated by
> {code}
> if (!match) {
>                     throw new IllegalArgumentException("There are no outputs which matches: " + matchBy.getId() + " in the route: " + route);
>                 }
> {code}
> workaround? `weaveByType(OnExceptionDefinition.class)`? Ideas? Is it the right use of route identifiers?



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