Hi Claus, I was able to redesign the route, so that works as I want. In that context however there is another issue with retrieving the exception from exchange CamelExceptionCaught property.
The route catches CustomException exception and in that case saves the body to database. While saving to database the PersistenceException occurs, but is successfully retried. Then the CamelExceptionCaught property contains PersistenceException instead of CustomException. from("direct:start") .onException(CustomException.class) .handled(true) .to(persist) // persist body (will fail, but successfully retry) .to(report) // report custom exception from(persist) .onException(PersistenceException.class) .retry(10) .log("could not persist body") Is there a way to retrieve the original exception without looking exception.getSuppressed() ? Obviously, the retried exception is not interesting, but the failed one. Thanks! Dan Am Mo., 3. Dez. 2018 um 19:05 Uhr schrieb Claus Ibsen-2 [via Camel] <ml+s465427n5826402...@n5.nabble.com>: > > Hi > > This is by design, to avoid circular onException to trigger in endless. > So try to design your error handling in a more safe manner > On Tue, Nov 13, 2018 at 10:23 AM Dennis Holunder <[hidden email]> wrote: > > > > > Hello, > > > > I have two onException definitions which catch exceptions and send > > them to direct:logerrors endpoint. The second exception might throw an > > exception which should be caught and handled by the first one. But > > this doesn't work. The FatalFallbackErrorHandler kicks in and as the > > result the exception is not logged by direct:logerrors, as I wish. Any > > ideas how to safely implement this? > > > > from(direct:start) > > .onException(UpdateException.class) //retries and logs the error > > .handled(true) > > .maximumRedeliveries(5) > > .redeliveryDelay(1_000L) > > .to(direct:logerrors) > > .end() > > .onException(IgnoredException.class) //saves the POJO and > > logs the error > > .handled(true) > > .process().body(Pojo.class, processor::update) // > > throws UpdateException > > .to(direct:logerrors) > > .end() > > > > Regards, > > Dan > > > > -- > Claus Ibsen > ----------------- > http://davsclaus.com @davsclaus > Camel in Action 2: https://www.manning.com/ibsen2 > > > ________________________________ > If you reply to this email, your message will be added to the discussion > below: > http://camel.465427.n5.nabble.com/dealing-with-exceptions-in-onExceptions-definitions-tp5825721p5826402.html > To unsubscribe from Camel, click here. > NAML