Hi all,
I have simple route that takes messages from [Input] and forwards them to
[Output], or to [Failed] (dead letter queue) if something bad happens:
errorHandler(deadLetterChannel("jms:queue:Failed")
.maximumRedeliveries(1)
.redeliveryDelay(0));
onException(Throwable.class)
.maximumRedeliveries(0)
.handled(true);
from("jms:queue:Input")
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
System.out.println("Processing msg " +
exchange.getIn().getBody());
throw new RuntimeException("Something bad happens here...");
}
})
.to("jms:queue:Output");
Everything works as expected - all messages are placed on [Failed] queue
since we are throwing RuntimeException in processor. But it doesn't work
after adding processor to onException:
errorHandler(deadLetterChannel("jms:queue:Failed")
.maximumRedeliveries(1)
.redeliveryDelay(0));
onException(Throwable.class)
.maximumRedeliveries(0)
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
System.out.println("Exception is intercepted...");
}
})
.handled(true);
from("jms:queue:Input")
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
System.out.println("Processing msg " +
exchange.getIn().getBody());
throw new RuntimeException("Something bad happens here...");
}
})
.to("jms:queue:Output");
I'm loosing all messages now - why? Why adding processor to onException is
so special?
I'm using Camel 2.6 and ActiveMQ 5.8.0.
Regards,
Rafal
--
View this message in context:
http://camel.465427.n5.nabble.com/Why-dead-letter-channel-doesn-t-work-after-adding-Processor-to-onException-tp5732535.html
Sent from the Camel - Users mailing list archive at Nabble.com.