adding logStrackTrace(false) had no effect on my unit test...still works as
expected (tried against 2.10 and against the latest trunk)...
public class RedeliverTest extends ContextTestSupport
{
public void testRedeliver() throws Exception {
template.sendBody("direct:start", "Hello World");
getMockEndpoint("mock:b").setExpectedMessageCount(0);
assertMockEndpointsSatisfied();
}
@Override
protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
onException(IOException.class)
.handled(true)
.logStackTrace(false)
.maximumRedeliveries(3)
.to("log:CONTEXT-ERROR");
from("direct:start")
.onException(IOException.class)
//.maximumRedeliveries(3)
.logStackTrace(false)
.handled(true)
.to("log:ROUTE-ERROR")
.end()
.to("log:TRYING")
.process(new MyProcessor())
.to("mock:b");
}
};
}
public static class MyProcessor implements Processor {
private int counter;
@Override
public void process(Exchange exchange) throws Exception {
System.out.println("trying->" + exchange.getExchangeId());
if (counter++ < 2) {
throw new IOException("Forced");
}
exchange.getIn().setBody("Bye World");
}
}
}
joe82 wrote
> Thanks for reply -
> Ok, so on trying to replicate this myself in a unit test, I discovered the
> exact scenario that causes this...
> If you add the .logStackTrace(true/false) to your onException(...) policy,
> then you will see the context scoped maxRedeliveryAttempts value applied.
> So the below route-scoped exception policy is picking up the
> context-scoped error policy redelivery value (defined as 3):
>
> from("direct:testscope")
> .onException(Exception.class)
> .handled(true)
> .logStackTrace(false)
> .to("mock:exception")
> .end()
>
> But omitting the .logStackTrace(..) like below, picks up the expected
> default redelivery attempts of 0.
>
> from("direct:testscope")
> .onException(Exception.class)
> .handled(true)
> .to("mock:exception")
> .end()
>
> Do you find same if you add this to your route policy?
>
> Regards,
> joanne
>
>
> From: boday [via Camel] [mailto:
> [email protected]
> ]
> Sent: 12 February 2013 16:51
> To: Gilmore, Joanne
> Subject: Re: default maximum redelivery policy when overridding default
> error handler not right
>
> I just created a basic test and it seemed to work fine for my scenario.
> Can you attach a unit test that replicates this?
> joe82 wrote
> According the the camel documentation, if you provide a context-scoped
> error handling policy, and then a route-scoped onException policy also -
> the MaximumRedeliveries for the route-scoped policy should default to 0
> regardless of whether or not your context-scoped error handling policy had
> overwitten it.
> This does not appear to be correct, as I have found in this scenario, the
> MaximumRedeliveries default on my route-scoped onException policy was
> picking up the value which I had defined in the context-scoped error
> handling policy which was 3, instead of what I expected it to be (0).
> So I had to explicitly set the MaximumRedeliveries on the route-scoped
> policy to be 0.
> The version of camel for this project is 2.10.2.
>
> Has anyone noticed this? has it been raised with camel?
> Ben O'Day
> IT Consultant -http://consulting-notes.com
>
> ________________________________
> If you reply to this email, your message will be added to the discussion
> below:
> http://camel.465427.n5.nabble.com/default-maximum-redelivery-policy-when-overridding-default-error-handler-not-right-tp5727230p5727441.html
> To unsubscribe from default maximum redelivery policy when overridding
> default error handler not right, click
> here<http://camel.465427.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=5727230&code=am9hbm5lLmdpbG1vcmVAZm1yLmNvbXw1NzI3MjMwfDEwOTU3ODMyMzY=>.
> NAML<http://camel.465427.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
-----
Ben O'Day
IT Consultant -http://consulting-notes.com
--
View this message in context:
http://camel.465427.n5.nabble.com/default-maximum-redelivery-policy-when-overridding-default-error-handler-not-right-tp5727230p5727529.html
Sent from the Camel - Users mailing list archive at Nabble.com.