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 2013/08/22 09:14:51 UTC

[jira] [Resolved] (CAMEL-6378) Java DSL - Using transacted and onException in same route - Validate that onException is first

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

Claus Ibsen resolved CAMEL-6378.
--------------------------------

    Resolution: Fixed

CAMEL-6659 has a better solution.
                
> Java DSL - Using transacted and onException in same route - Validate that onException is first
> ----------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-6378
>                 URL: https://issues.apache.org/jira/browse/CAMEL-6378
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-core
>    Affects Versions: 2.12.0
>            Reporter: Claus Ibsen
>            Assignee: Claus Ibsen
>             Fix For: 2.12.0
>
>
> When you use Java DSL then the order how you specify transacted / policy / onException matter. 
> In XML DSL (we have a chance to fix this internally in Camel, so the order there doesnt not matter as much).
> We should add validation to the Java DSL so people can configure this correctly. Otherwise we just have too much on our plate to support any kind of order of all these cross cutting functionality being used in the DSL.
> Here is an unit test that required a chance to work correctly (eg onException should be first)
> {code}
> --- a/components/camel-spring/src/test/java/org/apache/camel/spring/interceptor/TransactionalClientDataSourceTransactedWithLocalOnExceptionT
> +++ b/components/camel-spring/src/test/java/org/apache/camel/spring/interceptor/TransactionalClientDataSourceTransactedWithLocalOnExceptionT
> @@ -28,22 +28,22 @@ public class TransactionalClientDataSourceTransactedWithLocalOnExceptionTest ext
>          return new SpringRouteBuilder() {
>              public void configure() throws Exception {
>                  from("direct:okay")
> -                    .transacted()
>                      // use local on exception
>                      .onException(IllegalArgumentException.class)
>                          .handled(false)
>                          .to("mock:error")
>                      .end()
> +                    .transacted()
>                      .setBody(constant("Tiger in Action")).beanRef("bookService")
>                      .setBody(constant("Elephant in Action")).beanRef("bookService");
>                  from("direct:fail")
> -                    .transacted()
>                      // use local on exception
>                      .onException(IllegalArgumentException.class)
>                          .handled(false)
>                          .to("mock:error")
>                      .end()
> +                    .transacted()
>                      .setBody(constant("Tiger in Action")).beanRef("bookService")
>                      .setBody(constant("Donkey in Action")).beanRef("bookService");
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira