Xiaoli Ding created CAMEL-5601:
----------------------------------

             Summary: 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}
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)


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

Reply via email to