Hi

I have reproduce this issue and created a ticket to track this bug
https://issues.apache.org/jira/browse/CAMEL-4438

On Thu, Sep 8, 2011 at 4:12 PM, Claus Ibsen <claus.ib...@gmail.com> wrote:
> Hi
>
> You may have to reorder the xml files, so the policies is read first
>
> eg try to swap the order here, to see if that works.
>  return new ClassPathXmlApplicationContext("main-context.xml",
> "test-policies-context.xml");
>
>
>
> 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/
>



-- 
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/

Reply via email to