If the Exception is thrown from the source() endpoint, the onException error 
handler won’t work as you expected.

--  
Willem Jiang

Red Hat, Inc.
Web: http://www.redhat.com
Blog: http://willemjiang.blogspot.com (English)
http://jnn.iteye.com (Chinese)
Twitter: willemjiang  
Weibo: 姜宁willem



On January 10, 2015 at 1:38:52 AM, James Green (james.mk.gr...@gmail.com) wrote:
> Project is Spring based with Camel 2.14 and the following configuration:
>  
> onException(AccountNotFoundException.class)
> .log("Account Not Found. Message
> discarded.").to("jms:queue:RouterAccountNotFound").stop();
>  
> errorHandler(transactionErrorHandler().maximumRedeliveries(3));
>  
> from(source())
> .transacted()
> .unmarshal(jacksonUnmarshall)
> .process(router)
> .recipientList(simple("${body.media}"));
>  
> We have a JMS connection and a JPA connection wrapped in a Atomikos
> transaction manager (a XA transaction manager I understand to be required).
> The above errorHandler triggers if the router throws an Exception, but the
> onException statement does not fire despite the logs recording the
> AccountNotFoundException being caught by Camel.
>  
> Consequently the log()ing and the RouterAccountNotFound queue do not fire
> at all.
>  
> The documentation suggests onException should be usable at this point. Can
> anyone suggest why the above only partly works?
>  
> Thanks,
>  
> James
>  

Reply via email to