[
https://issues.apache.org/jira/browse/CAMEL-5167?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen resolved CAMEL-5167.
--------------------------------
Resolution: Fixed
And as I told you we will make the DSL stricter in Camel 3.0, where we will
enforce that you can only configure error handler in certain positions etc.
We cannot make this changes in the DSL in the 2.x line as it will break the DSL
contract for people.
Error handlers and onException is configured in the *start* of the route.
> 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: Improvement
> Affects Versions: 2.9.1
> Reporter: Radoslaw Szymanek
> Assignee: Claus Ibsen
> Fix For: 2.10.0
>
>
> 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