Author: davsclaus Date: Tue Jun 12 13:34:51 2012 New Revision: 1349337 URL: http://svn.apache.org/viewvc?rev=1349337&view=rev Log: CAMEL-5363: Fixed jms producer to trigger Camel error handling if invalid destination during destination resolution failed.
Added: camel/branches/camel-2.8.x/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyInvalidDestinationTest.java - copied unchanged from r1349332, camel/branches/camel-2.9.x/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyInvalidDestinationTest.java Modified: camel/branches/camel-2.8.x/ (props changed) camel/branches/camel-2.8.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsProducer.java Propchange: camel/branches/camel-2.8.x/ ------------------------------------------------------------------------------ Merged /camel/trunk:r1349330 Merged /camel/branches/camel-2.9.x:r1349332 Propchange: camel/branches/camel-2.8.x/ ------------------------------------------------------------------------------ Binary property 'svnmerge-integrated' - no diff available. Modified: camel/branches/camel-2.8.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsProducer.java URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsProducer.java?rev=1349337&r1=1349336&r2=1349337&view=diff ============================================================================== --- camel/branches/camel-2.8.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsProducer.java (original) +++ camel/branches/camel-2.8.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsProducer.java Tue Jun 12 13:34:51 2012 @@ -101,12 +101,20 @@ public class JmsProducer extends Default return true; } - if (!endpoint.isDisableReplyTo() && exchange.getPattern().isOutCapable()) { - // in out requires a bit more work than in only - return processInOut(exchange, callback); - } else { - // in only - return processInOnly(exchange, callback); + try { + if (!endpoint.isDisableReplyTo() && exchange.getPattern().isOutCapable()) { + // in out requires a bit more work than in only + return processInOut(exchange, callback); + } else { + // in only + return processInOnly(exchange, callback); + } + } catch (Throwable e) { + // must catch exception to ensure callback is invoked as expected + // to let Camel error handling deal with this + exchange.setException(e); + callback.done(true); + return true; } }