[ https://issues.apache.org/jira/browse/CAMEL-4022?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13042306#comment-13042306 ]
Hadrian Zbarcea edited comment on CAMEL-4022 at 6/1/11 5:39 PM: ---------------------------------------------------------------- I added a test in r1130232 that demonstrates the problem. What should happen if exception is thrown while handling exception? Imho, certainly not going through redeliveries and the default error handler (which can be replaced by the user app). My proposal is to have a fatalErrorHandler for this scenario that is simple and stateless (i.e. no redelivery and virtually no chances of throwing other exceptions, no sending to other endpoints). If that sounds good I can implement the piping for it while we keep discussing what exactly the fatalErrorHandler should do. If you can think of better solutions feel free to comment. Thoughts? was (Author: hadrian): I added a test in r1130232 that demonstrates the problem. What should happen if exception is thrown while handling exception? Imho, certainly not going through redeliveries and the default error handler (which can be replaced by the user app). Thoughts? > 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 > > 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