[
https://issues.apache.org/jira/browse/CAMEL-5612?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13455678#comment-13455678
]
Xiaoli Ding commented on CAMEL-5612:
------------------------------------
thanks.
but now i want the first error handler only deal with "route1",and second error
handler only deal with "route2",it is possible by this order?
error handler
error handler
route1
route2
route3
route4
thanks for reply!
> Can not define error handler at begin of two route simultaneously
> -----------------------------------------------------------------
>
> Key: CAMEL-5612
> URL: https://issues.apache.org/jira/browse/CAMEL-5612
> Project: Camel
> Issue Type: Bug
> Components: camel-core
> Affects Versions: 2.9.3
> Reporter: Xiaoli Ding
> Assignee: Claus Ibsen
> Priority: Minor
> Fix For: 2.11.0
>
>
> i created two route,and i add error handler at begin of two route,the
> generated code are:
> {noformat}
> public void configure() throws Exception {
> errorHandler(deadLetterChannel("direct:a"))
>
> .from("timer:myTimer1?repeatCount=1").routeId("route1")
> .process(new org.apache.camel.Processor() {
> public void
> process(org.apache.camel.Exchange exchange)
> throws Exception {
> throw new Exception("errorA");
> }
> }).id("cProcessor_1");
> errorHandler(deadLetterChannel("direct:b"))
>
> .from("timer:myTimer2?repeatCount=1").routeId("route2")
> .process(new org.apache.camel.Processor() {
> public void
> process(org.apache.camel.Exchange exchange)
> throws Exception {
> throw new Exception("errorB");
> }
> }).id("cProcessor_2");
> from("direct:a").routeId("route3")
> .process(new org.apache.camel.Processor() {
> public void
> process(org.apache.camel.Exchange exchange)
> throws Exception {
> Throwable exception =
> (Throwable) exchange
>
> .getProperty(org.apache.camel.Exchange.EXCEPTION_CAUGHT);
> System.out.println("first
> error:"
> +
> exception.getMessage());
> }
> }).id("cProcessor_3");
> from("direct:b").routeId("route4")
> .process(new org.apache.camel.Processor() {
> public void
> process(org.apache.camel.Exchange exchange)
> throws Exception {
> Throwable exception =
> (Throwable) exchange
>
> .getProperty(org.apache.camel.Exchange.EXCEPTION_CAUGHT);
> System.out.println("second
> error:"
> +
> exception.getMessage());
> }
> }).id("cProcessor_4");
> }
> {noformat}
> when run it,the result is:
> {noformat}
> Exception in thread "main" java.lang.IllegalArgumentException: errorHandler
> must be defined before any routes in the RouteBuilder
> at
> org.apache.camel.builder.RouteBuilder.errorHandler(RouteBuilder.java:145)
> at org.talend.esb.camel.CamelTester.configure(CamelTester.java:53)
> at
> org.apache.camel.builder.RouteBuilder.checkInitialized(RouteBuilder.java:324)
> at
> org.apache.camel.builder.RouteBuilder.configureRoutes(RouteBuilder.java:278)
> at
> org.apache.camel.builder.RouteBuilder.addRoutesToCamelContext(RouteBuilder.java:264)
> at
> org.apache.camel.impl.DefaultCamelContext.addRoutes(DefaultCamelContext.java:605)
> at org.talend.esb.camel.CamelTester.initialize(CamelTester.java:16)
> at org.talend.esb.camel.CamelTester.<init>(CamelTester.java:11)
> at org.talend.esb.camel.CamelTester.main(CamelTester.java:35)
> {noformat}
--
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