Hi all;

I have a global onException defined that I hoped would let me retry an
entire route twice using a setup like the following.  The issue that I see
is that route2 gets called an unlimited number of times until it succeeds.

Is this due to route2 having a doTry block inside?  Or am I missing
something else?

<onException useOriginalMessage="true">
<exception>org.apache.camel.ExchangeTimedOutException</exception>
<redeliveryPolicy maximumRedeliveries="2" redeliveryDelay="0"/>
<continued><constant>true</constant></continued>
<transform>//set an appropriate error result body
</transform>
</onException>

from route1, I call into route2:

<route id="1">
<to uri="direct:route2"/>
</route>

<route id="2" errorHandlerRef="disableErrorHandler">
<doTry>
//call a jetty route
<doCatch>
<exception>java.lang.Exception</exception>
<handled><constant>false</constant></handled>
// log some info into the database
</doCatch>
</doTry>
</route>

I see logging like the following:

2014-10-15 15:00:14,469 [CamelJettyClient(0xf6eec8e)-150] WARN 
jetty.client.HttpExchange EXPIRED JettyContentExchange@50e9cd46=POST// a url
here #SENDING(1ms)->EXPIRED(0ms)sent=1ms

2014-10-15 15:00:14,470 [CamelJettyClient(0xf6eec8e)-150] ERROR
route.vendor-md.doCatch Exception
org.apache.camel.ExchangeTimedOutException: The OUT message was not received
within: 100 millis. Exchange[Message:  a JSON message body here]
        at
org.apache.camel.component.jetty.JettyContentExchange.doTaskCompleted(JettyContentExchange.java:207)
        at
org.apache.camel.component.jetty.JettyContentExchange.onExpire(JettyContentExchange.java:130)
        at
org.eclipse.jetty.client.HttpExchange$Listener.onExpire(HttpExchange.java:1120)
        at
org.eclipse.jetty.client.HttpExchange.setStatusExpired(HttpExchange.java:384)
        at
org.eclipse.jetty.client.HttpExchange.setStatus(HttpExchange.java:267)
        at
org.eclipse.jetty.client.HttpExchange.expire(HttpExchange.java:130)
        at
org.eclipse.jetty.client.HttpExchange$1.expired(HttpExchange.java:1070)
        at org.eclipse.jetty.util.thread.Timeout.tick(Timeout.java:140)
        at org.eclipse.jetty.util.thread.Timeout.tick(Timeout.java:153)
        at org.eclipse.jetty.client.HttpClient$1.run(HttpClient.java:441)
        at
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
        at
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
        at java.lang.Thread.run(Thread.java:745)

2014-10-15 15:00:14,474 [Camel (camel-1) thread #10 -
ErrorHandlerRedeliveryTask] DEBUG route2  a debugging message here from
route2


Any thoughts?






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

Reply via email to