Hi: The camel's transaction required the transacted-error-handler, but try-catch required no-error-handler. They will conflict; following is a sample that the try-catch cannot works while using transaction. but I am not sure if this is bug or just a camel's limit?
For example, the following route : <doTry> <policy ref="PROPAGATION_REQUIRED"> <pipeline> <to uri="ibatis:table.add?statementType=Insert"/> <bean ref="errorbean" method="raiseError"/> </pipeline> </policy> <doCatch> <exception>java.lang.Exception</exception> <bean ref="mybean" method="foo"/> </doCatch> As for normal understanding: the errorbean(just after ibatis) raise error, so the pipeline will marked as rollback status, but the exception is still exist, and the catch clause will be execute.And in camel, doCatch cannot be execute;