Hi Camel riders,
I'm trying to figure out why onException is not triggerd in the following
route. The solution I found is to use try-catch instead, but I'd prefer to
have it work only with errorHandler and onException
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.test.junit4.CamelTestSupport;
import org.junit.Test;
public class ErrorTest extends CamelTestSupport {
@Test
public void testErrorIsThrown() throws Exception {
getMockEndpoint("mock:foundException").expectedMessageCount(1);
try {
template.sendBody("direct:start", "test");
fail("Propagate exception back to consumer");
} catch (Exception e) {
}
assertMockEndpointsSatisfied();
}
@Override
protected RouteBuilder createRouteBuilder() {
return new RouteBuilder() {
public void configure() {
from("direct:start")
.to("direct:internal")
.onException(Exception.class)
.to("mock:foundException");
from("direct:internal")
.errorHandler(defaultErrorHandler().maximumRedeliveries(2))
.throwException(new RuntimeException())
.to("mock:never");
}
};
}
}
--
Bilgin Ibryam
Apache Camel & Apache OFBiz committer
Blog: ofbizian.com
Twitter: @bibryam <https://twitter.com/bibryam>
Author of Instant Apache Camel Message Routing
http://www.amazon.com/dp/1783283475