Hello,
I need to use nested catch-blocks in my project like the following:
from("direct:start")
.doTry()
.setBody(simple("doTry"))
.to("stream:out")
.doCatch(Exception.class)
.setBody(simple("doCatch"))
.to("stream:out")
.doTry()
.setBody(simple("doTry in doCatch"))
.to("stream:out")
.doCatch(Exception.class)
.setBody(simple("doCatch in doCatch"))
.to("stream:out")
.end()
.doFinally()
.setBody(simple("doFinally"))
.to("stream:out")
.doTry()
.setBody(simple("doTry in doFinally"))
.to("stream:out")
.doCatch(Exception.class)
.setBody(simple("doCatch in doFinally"))
.to("stream:out")
.end()
.stop()
.endDoTry();
Compiler says: the method doFinally() is undefined for the type
ProcessorDefinition<capture#1-of ?> so Eclipse suggests ("add cast to
method receiver") following:
((TryDefinition) from("direct:start")
.doTry()
.setBody(simple("doTry"))
.to("stream:out")
.doCatch(Exception.class)
.setBody(simple("doCatch"))
.to("stream:out")
.doTry()
.setBody(simple("doTry in doCatch"))
.to("stream:out")
.doCatch(Exception.class)
.setBody(simple("doCatch in doCatch"))
.to("stream:out")
.end()
)
.doFinally()
.setBody(simple("doFinally"))
.to("stream:out")
.doTry()
.setBody(simple("doTry in doFinally"))
.to("stream:out")
.doCatch(Exception.class)
.setBody(simple("doCatch in doFinally"))
.to("stream:out")
.end()
.stop()
.endDoTry();
but then at runtime I get:
java.lang.ClassCastException: org.apache.camel.model.CatchDefinition cannot
be cast to org.apache.camel.model.TryDefinition
Whats wrong here, I can't see a syntax error ? Is it a bug ?
thanks for any advice
james
--
View this message in context:
http://camel.465427.n5.nabble.com/nested-catch-blocks-in-doCatch-and-doFinally-tp5752429.html
Sent from the Camel - Users mailing list archive at Nabble.com.