'Setting handled as true in onException block prevents redeliveries

I am reading a file from a directory, and trying to call an API based on the data in the file.

While trying to handle the exceptions, I am facing an issue. I am trying to configure the onException block to redeliver 3 times, with a delay of 5 seconds. The issue occurs, when I am setting handled(true). This configuration does not redeliver, and stops as soon as the exception occurs.

This is my onException block:

 onException(HttpOperationFailedException.class)
        .log(LoggingLevel.ERROR, logger, "Error occurred while connecting to API for file ${header.CamelFileName} :: ${exception.message}")
        .log("redelivery counter :: ${header.CamelRedeliveryCounter}")
        .maximumRedeliveries(3)
        .redeliveryDelay(5000)
        .handled(true);

How do I do both, i.e. handle as well as redeliver?



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source