A little further digging.  I added some debugging output to
incrementRedeliveryCounter and found the CamelRedeliveryCounter header is
missing on the redelivery attempt, I see the following:

2014-10-16 09:01:48,976 [CamelJettyClient(0x106898e3)-88] DEBUG
camel.processor.RedeliveryErrorHandler in incrementRedeliveryCounter
2014-10-16 09:01:48,976 [CamelJettyClient(0x106898e3)-88] DEBUG
camel.processor.RedeliveryErrorHandler !!! redelivery counter header was
NULL
2014-10-16 09:01:48,977 [CamelJettyClient(0x106898e3)-88] DEBUG
camel.processor.RedeliveryPolicy in shouldRedeliver, redeliveryCounter = 1
2014-10-16 09:01:48,977 [CamelJettyClient(0x106898e3)-88] DEBUG
camel.processor.RedeliveryPolicy maxRedeliveries is 2, returning true

inside route2, I had a statement that removed the Camel headers before
calling a remote web service (as recommended) so that Jetty doesn't get
tripped up by the old URI, URL settings:

                        <removeHeaders pattern="Camel*"/>
                        <to uri="jetty:{{vendor.uri}}?httpClient.timeout=100"/>

Apparently this destroys the redelivery count, removing it corrected the
issue.  I would consider this a defect that an inner route (with
useOriginalMessage=true) can destroy the redelivery count.

I changed it to:
                        <removeHeaders pattern="Camel*" 
excludePattern="CamelRedeliveryCounter"/>

And the issue went away, it now redelivers twice and then fails as designed.





--
View this message in context: 
http://camel.465427.n5.nabble.com/onException-and-doTry-tp5757602p5757629.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to