You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Xiaoli Ding (JIRA)" <ji...@apache.org> on 2012/09/13 05:53:08 UTC

[jira] [Updated] (CAMEL-5601) Error handler level is wrong

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

Xiaoli Ding updated CAMEL-5601:
-------------------------------

    Description: 
step1:add one route begin with Error handler component whose dead letter url is "direct:b".
step2:add send route with without error handler component.
step3:add the deadLetterChannel with url:"direct:b"

the generated code are:
{noformat} 
	@Override
	public void configure() throws Exception {
		errorHandler(deadLetterChannel("direct:b")).from("timer:myTimer1?repeatCount=1")
				.process(new org.apache.camel.Processor() {
					public void process(
							org.apache.camel.Exchange exchange)
							throws Exception {						
						throw new Exception("i am in start of route");
					}

				}).id("cProcessor_1");
		from("timer:myTimer2?repeatCount=1")
				.routeId("Sender_cMessagingEndpoint_1")
				.process(new org.apache.camel.Processor() {
					public void process(
							org.apache.camel.Exchange exchange)
							throws Exception {
						throw new Exception("i am isolate in the model");
					}

				}).id("cProcessor_3");
		from("direct:b")
				.routeId("toProcessStartRouteLevel_cMessagingEndpoint_4")
				.process(new org.apache.camel.Processor() {
					public void process(
							org.apache.camel.Exchange exchange)
							throws Exception {						
						System.out.println("it is route level handler");
					}

				}).id("cProcessor_4");
	}
{noformat} 

when run it,the output is:
{noformat} 
it is route level handler
it is route level handler
{noformat}
but expect the output is:
{noformat}
it is route level handler
{noformat}
only one time.

if i switch location step2 and step3:
the generated code also switch the place for the second "from" and third "from",it is ok,only output one time.
the whole class is in attachment(CamelTester.java)


  was:
step1:add one route begin with Error handler component whose dead letter url is "direct:b".
step2:add send route with without error handler component.
step3:add the deadLetterChannel with url:"direct:b"

the generated code are:
{noformat} 
	@Override
	public void configure() throws Exception {
		errorHandler(deadLetterChannel("direct:b")).from("timer:myTimer1?repeatCount=1")
				.process(new org.apache.camel.Processor() {
					public void process(
							org.apache.camel.Exchange exchange)
							throws Exception {						
						throw new Exception("i am in start of route");
					}

				}).id("cProcessor_1");
		from("timer:myTimer2?repeatCount=1")
				.routeId("Sender_cMessagingEndpoint_1")
				.process(new org.apache.camel.Processor() {
					public void process(
							org.apache.camel.Exchange exchange)
							throws Exception {
						throw new Exception("i am isolate in the model");
					}

				}).id("cProcessor_3");
		from("direct:b")
				.routeId("toProcessStartRouteLevel_cMessagingEndpoint_4")
				.process(new org.apache.camel.Processor() {
					public void process(
							org.apache.camel.Exchange exchange)
							throws Exception {						
						System.out.println("it is route level handler");
					}

				}).id("cProcessor_4");
	}
{noformat} 

when run it,the output is:
{noformat} 
it is route level handler
it is route level handler
{noformat}
output two times,but expect the output is:
{noformat}
it is route level handler
{noformat}
only one time.

if i switch location step2 and step3:
the generated code also switch the place for the second "from" and third "from",it is ok,only output one time.
the whole class is in attachment(CamelTester.java)


    
> Error handler level is wrong
> ----------------------------
>
>                 Key: CAMEL-5601
>                 URL: https://issues.apache.org/jira/browse/CAMEL-5601
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 2.9.3
>            Reporter: Xiaoli Ding
>            Priority: Minor
>
> step1:add one route begin with Error handler component whose dead letter url is "direct:b".
> step2:add send route with without error handler component.
> step3:add the deadLetterChannel with url:"direct:b"
> the generated code are:
> {noformat} 
> 	@Override
> 	public void configure() throws Exception {
> 		errorHandler(deadLetterChannel("direct:b")).from("timer:myTimer1?repeatCount=1")
> 				.process(new org.apache.camel.Processor() {
> 					public void process(
> 							org.apache.camel.Exchange exchange)
> 							throws Exception {						
> 						throw new Exception("i am in start of route");
> 					}
> 				}).id("cProcessor_1");
> 		from("timer:myTimer2?repeatCount=1")
> 				.routeId("Sender_cMessagingEndpoint_1")
> 				.process(new org.apache.camel.Processor() {
> 					public void process(
> 							org.apache.camel.Exchange exchange)
> 							throws Exception {
> 						throw new Exception("i am isolate in the model");
> 					}
> 				}).id("cProcessor_3");
> 		from("direct:b")
> 				.routeId("toProcessStartRouteLevel_cMessagingEndpoint_4")
> 				.process(new org.apache.camel.Processor() {
> 					public void process(
> 							org.apache.camel.Exchange exchange)
> 							throws Exception {						
> 						System.out.println("it is route level handler");
> 					}
> 				}).id("cProcessor_4");
> 	}
> {noformat} 
> when run it,the output is:
> {noformat} 
> it is route level handler
> it is route level handler
> {noformat}
> but expect the output is:
> {noformat}
> it is route level handler
> {noformat}
> only one time.
> if i switch location step2 and step3:
> the generated code also switch the place for the second "from" and third "from",it is ok,only output one time.
> the whole class is in attachment(CamelTester.java)

--
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