Hi Can you post the full stack trace?
On Fri, Aug 26, 2011 at 5:34 PM, RavshanKos <ravshan.kosi...@db.com> wrote: > Hello. > > I'm trying to store redelivery policies in separate spring context. > > Here context files that I'm using to test my approach: > > main-context.xml: > <?xml version="1.0" encoding="UTF-8"?> > <beans xmlns="http://www.springframework.org/schema/beans" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xmlns:camel="http://camel.apache.org/schema/spring" > xsi:schemaLocation=" > http://www.springframework.org/schema/beans > http://www.springframework.org/schema/beans/spring-beans.xsd > http://camel.apache.org/schema/spring > http://camel.apache.org/schema/spring/camel-spring.xsd"> > <camel:camelContext id="camelContext" trace="true"> > <camel:route id="main" errorHandlerRef="defaultErrorHandler"> > <camel:from ref="input" /> > <camel:onException redeliveryPolicyRef="redeliveryPolicy" > onRedeliveryRef="onRedeliveryBean"> > <camel:exception>java.lang.Exception</camel:exception> > > > <camel:handled><camel:constant>true</camel:constant></camel:handled> > </camel:onException> > <camel:bean ref="exceptionThrowingBean" /> > <camel:to ref="output" /> > </camel:route> > </camel:camelContext> > </beans> > > test-policies-context.xml: > <?xml version="1.0" encoding="UTF-8"?> > <beans xmlns="http://www.springframework.org/schema/beans" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xmlns:camel="http://camel.apache.org/schema/spring" > xsi:schemaLocation=" > http://www.springframework.org/schema/beans > http://www.springframework.org/schema/beans/spring-beans.xsd > http://camel.apache.org/schema/spring > http://camel.apache.org/schema/spring/camel-spring.xsd"> > <camel:endpoint id="input" uri="direct:input" /> > <camel:endpoint id="output" uri="mock:output" /> > <camel:redeliveryPolicyProfile id="redeliveryPolicy" > maximumRedeliveries="5" disableRedelivery="false" /> > <camel:errorHandler id="defaultErrorHandler" type="DeadLetterChannel" > deadLetterUri="mock:deadLetterChannel" /> > <bean id="onRedeliveryBean" > class="RedeliveryPoliciesTest.OnRedeliveryBean" /> > <bean id="exceptionThrowingBean" > class="RedeliveryPoliciesTest.ExceptionThrowingBean" /> > </beans> > > Test class: > public class RedeliveryPoliciesTest extends CamelSpringTestSupport { > public static class ExceptionThrowingBean implements Processor { > public void process(Exchange exchange) throws Exception { > throw new Exception("RedeliveryPoliciesTest"); > } > } > > public static class OnRedeliveryBean implements Processor { > private Counter counter; > > public void setCounter(Counter counter) { > this.counter = counter; > } > > public void process(Exchange exchange) throws Exception { > counter.inc(); > } > } > > public static interface Counter { > void inc(); > } > > protected AbstractApplicationContext createApplicationContext() { > return new ClassPathXmlApplicationContext("main-context.xml", > "test-policies-context.xml"); > } > > @Test > public void testEnsureTharRedeliveryPolicyIsWorking() { > Counter counter = Mockito.mock(Counter.class); > getMandatoryBean(OnRedeliveryBean.class, > "onRedeliveryBean").setCounter(counter); > template.sendBody("direct:input", new Object()); > Mockito.verify(counter, Mockito.times(5)).inc(); > } > } > > If I run this test it fail with: > java.lang.IllegalArgumentException: Defensive copy of Exchange is null must > be specified on: > > If I uncomment it starts to work. > Is it correct behaviour? > > I'm using camel 2.8.0. > > > -- > View this message in context: > http://camel.465427.n5.nabble.com/redeliveryPolicyProfile-and-onException-redeliveryPolicyRef-tp4738408p4738408.html > Sent from the Camel - Users mailing list archive at Nabble.com. > -- Claus Ibsen ----------------- FuseSource Email: cib...@fusesource.com Web: http://fusesource.com Twitter: davsclaus, fusenews Blog: http://davsclaus.blogspot.com/ Author of Camel in Action: http://www.manning.com/ibsen/