Hi all,

I am working on error handling across multiple routes.

  client -> route A -> route B
  exchange pattern = InOut

I want to process exceptions thrown in route B, by (1) setting a result
field in my message, (2) returning from route B, and then (3) continuing
processing in route A

I can already do this using doTry/doCatch in route B, but I want to do it
using a global onException.

Unfortunately, it seems that when onException finishes processing a message,
the message exchange stops, and therefore exits *both* routes.

Specifically, if I set handled=true from inside my onException, then the
pipeline exits from each route in turn; but if I don't set it, then the
error handler mechanism kicks in, and this also exits from each route in
turn.

The attached test case illustrates the problem. Please review it and tell
me: how can I edit the onException and/or route definition (see file
/src/test/resources/com/test/service/processors/ExceptionProcessorTest-context.xml)
to make the unit test pass?

http://camel.465427.n5.nabble.com/file/n4754324/onExceptionTest.tar
onExceptionTest.tar 

Regards,
Paul

--
View this message in context: 
http://camel.465427.n5.nabble.com/onException-exits-from-all-routes-tp4754324p4754324.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to