onException policy within global context lost when error handler redefined
within route context.
------------------------------------------------------------------------------------------------
Key: CAMEL-5167
URL: https://issues.apache.org/jira/browse/CAMEL-5167
Project: Camel
Issue Type: Bug
Affects Versions: 2.9.1
Reporter: Radoslaw Szymanek
This may as well be Camel feature (limitation of Java DSL), but I found no
indications/warning that this is a feature in Camel book or web documentation.
The route is somewhat ill defined as local errorHandler should be placed before
bean part, but maybe for those types of mistakes
it should not have this nasty side effects of loosing global onException
policy, but at least complain during route creation (?).
Moreover, the route works properly if I remove global error handler, so it is
rather nasty effect if route definition correctness depends on the existence of
the global error handler definition.
If I move local errorHandler before bean part then the my test passes as the
onException policy is triggered and works properly.
As soon as I redefine the error handler within a route the onException policy
is no longer applicable for the route and the route propagates the exception
back to the caller.
{code}
errorHandler(defaultErrorHandler().maximumRedeliveries(1));
onException(NullPointerException.class).setOnRedelivery(new
NullRegistrationDateProcessor());
from("direct:toPropertyFile").routeId("registrationEntryToPropertyFile")
.setHeader(Exchange.FILE_NAME,
simple("${body.firstname}.${body.surname}"))
.bean(RegistrationToPropertiesBean.class, "convert")
// Potential bug in Camel, if the same error handler like global is turned
on then onException defined in global context will not be picked up.
.errorHandler(defaultErrorHandler().maximumRedeliveries(1))
// the code above is working if no default handler was created for a
global context.
.to("file://" + outFolder);
{code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira