camel-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Xiaoli Ding (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CAMEL-5612) Can not define error handler at begin of two route simultaneously
Date Fri, 14 Sep 2012 09:00:07 GMT

    [ 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

Mime
View raw message