[
https://issues.apache.org/jira/browse/CAMEL-4022?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13044514#comment-13044514
]
Claus Ibsen commented on CAMEL-4022:
------------------------------------
I had a bit time to look into that unit test Hadrian committed.
I moved it into its separate unit test file: ExceptionCamel4022Test
That makes it easier to debug.
I also added a bunch of unit tests that showed the expected behavior of
onException when an exception was thrown: ExceptionThrownFromOnExceptionTest
The odd thing from Hadrians test is that if you send the message to
direct:intermediate instead of direct:start, then it works as expected. I
haven't debugged this more throughly to see the oddity.
> Issue using errorBuilderRef with the xml dsl
> --------------------------------------------
>
> Key: CAMEL-4022
> URL: https://issues.apache.org/jira/browse/CAMEL-4022
> Project: Camel
> Issue Type: Bug
> Affects Versions: 2.7.1
> Reporter: Hadrian Zbarcea
> Assignee: Hadrian Zbarcea
> Priority: Critical
>
> While fixing issues around the errorHandler I noticed that <onException>
> definitions defined in the camel context are ignored if a route specifies its
> own errorHandlerRef. The reason is that we set the onException definition on
> the default error handler. I have a fix for that, but I discovered a
> different issue (I think) for which I would like to discuss the solution.
> When we have an onException definition that looks kinda like this:
> {code}
> <onException>
> <exception> java.lang.IllegalArgumentException</exception>
> <to uri="mock:illegalArgumentException"/>
> </onException>
> {code}
> ... something happens, the IAE exception is caught, we do something, but in
> that process another exception is thrown. Currently, that would be caught by
> the default error handler, which may not be what we want.
> What error handler (if any) should handle exceptions thrown while in
> onException?
> The onException mechanism is somewhat similar to a try/catch. I don't think
> the exceptions thrown while handling onException should be handled by the
> same error handler configured for the route, or even the context scoped one.
> The processing should be very simple, predictable and immutable. Since the
> default "CamelDefaultErrorHandlerBuilder" can be replaced, it is not imho a
> solution and we need one global one that does as little as possible (the
> problem would be agreeing what that is: no redeliveries, logging or not, etc).
> Thoughts?
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira