Hi, I had some problems when I tried "endDoTry()" in my RouteBuilder. Here are the codes:
from("timer://myTimer?period=2000").setBody() .simple("Current time is ${header.firedTime}").doTry() .process(new Processor() { @Override public void process(Exchange exchange) throws Exception { throw new Exception("Customized"); } }).setBody(constant("No Exception")).to("log:no-error") .to("file://c:/data/input/cFile").endDoTry() .doCatch(Exception.class).to("log:catch"); } will cause an Exception: Exception in thread "main" java.lang.ClassCastException: org.apache.camel.model.RouteDefinition cannot be cast to org.apache.camel.model.TryDefinition And even worse, if we add some other routing nodes to Route, for example: from("timer://myTimer?period=2000").setBody() .simple("Current time is ${header.firedTime}").doTry() .process(new Processor() { @Override public void process(Exchange exchange) throws Exception { throw new Exception("Customized"); } }).setBody(constant("No Exception")).to("log:no-error") .loadBalance().random().to("log:load1").to("log:load1") .to("file://c:/data/input/cFile").endDoTry() .doCatch(Exception.class).to("log:catch"); } after loadBalance(), there will be no exception. I believe it's a camel bug, and here is similar bug https://issues.apache.org/jira/browse/CAMEL-4517 with endChoice(). My question is: will camel fix this problem to make sure it's OK to use endDoTry() in all cases? Best Regards Xiaopeng Li