camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Claus Ibsen <claus.ib...@gmail.com>
Subject Re: Camel 2.4 - InterceptStrategy error
Date Thu, 12 Aug 2010 11:00:12 GMT
And it only occurs when you use the intercept strategy? If you remove
it, does it work then? Sending to the mock:error endpoint?


On Thu, Aug 12, 2010 at 12:50 PM, Charles Moulliard
<cmoulliard@gmail.com> wrote:
> Hi,
>
> We get the following error when we try to use the following camel route +
> test
> Is it a bad configuration or a bug ?
>
> 1) Error
>
> 40781 [main] INFO org.apache.camel.impl.DefaultCamelContext - Route: route1
> started and consuming from: Endpoint[direct://in-only]
> 40781 [main] INFO org.apache.camel.impl.DefaultCamelContext - Route: route2
> started and consuming from: Endpoint[direct://start]
> 40781 [main] INFO org.apache.camel.impl.DefaultCamelContext - Route: route3
> started and consuming from: Endpoint[direct://file]
> 40781 [main] INFO org.apache.camel.impl.DefaultCamelContext - Started 3
> routes
> 40781 [main] INFO org.apache.camel.impl.DefaultCamelContext - Apache Camel
> 2.4.0 (CamelContext: camel-1) started in 0.000 seconds
> 40781 [main] INFO org.apache.jackrabbit.core.TransientRepository - Session
> opened
> 40797 [main] INFO org.fusesource.esb.audit.camel.AuditInterceptor -
> Processing Exchange
> 40797 [main] INFO org.fusesource.esb.audit.camel.AuditInterceptor - Node
> path - Active Exchange: a23af01b-64a6-49c7-80c9-15177d945ee5
> 40797 [main] INFO org.apache.jackrabbit.core.TransientRepository - Session
> opened
> 40797 [main] INFO org.fusesource.esb.audit.camel.AuditInterceptor -
> ENDPOINT: direct
> OrderFailedExeption: Cannot order: fail
> 40938 [main] INFO org.fusesource.esb.audit.camel.AuditInterceptor -
> Processing Exchange
> 40938 [main] INFO org.fusesource.esb.audit.camel.AuditInterceptor - Node
> path - Active Exchange: a23af01b-64a6-49c7-80c9-15177d945ee5
> 40938 [main] INFO org.apache.jackrabbit.core.TransientRepository - Session
> opened
> 40938 [main] INFO org.fusesource.esb.audit.camel.AuditInterceptor -
> ENDPOINT: direct
> Order ERROR
> 41000 [main] INFO org.fusesource.esb.audit.camel.AuditInterceptor -
> Processing Exchange
> 41000 [main] INFO org.fusesource.esb.audit.camel.AuditInterceptor - Node
> path - Active Exchange: a23af01b-64a6-49c7-80c9-15177d945ee5
> 41000 [main] INFO org.apache.jackrabbit.core.TransientRepository - Session
> opened
> 41000 [main] INFO org.fusesource.esb.audit.camel.AuditInterceptor -
> ENDPOINT: direct
> 41047 [main] ERROR org.apache.camel.processor.DefaultErrorHandler - Failed
> delivery for exchangeId: a23af01b-64a6-49c7-80c9-15177d945ee5. Exhausted
> after delivery attempt
> : 1 caught: java.lang.IllegalStateException: SendProcessor has not been
> started: sendTo(Endpoint[mock://error])
> java.lang.IllegalStateException: SendProcessor has not been started:
> sendTo(Endpoint[mock://error])
>        at
> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:94)
>        at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
>        at
> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
>        at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
>        at
> org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:99)
>        at
> org.apache.camel.processor.InterceptorToAsyncProcessorBridge.process(InterceptorToAsyncProcessorBridge.java:67)
>        at
> org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:58)
>        at
> org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:90)
>        at
> org.fusesource.esb.audit.camel.AuditInterceptor.process(AuditInterceptor.java:78)
>        at
> org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:50)
>        at
> org.apache.camel.processor.InterceptorToAsyncProcessorBridge.process(InterceptorToAsyncProcessorBridge.java:76)
>        at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
>        at
> org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:290)
>        at
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:202)
>        at
> org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:256)
>        at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
>        at org.apache.camel.processor.Pipeline.process(Pipeline.java:143)
>        at org.apache.camel.processor.Pipeline.process(Pipeline.java:78)
>        at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
>        at
> org.apache.camel.processor.RedeliveryErrorHandler.deliverToFailureProcessor(RedeliveryErrorHandler.java:582)
>        at
> org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:236)
>        at
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:202)
>        at
> org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:256)
>        at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
>        at org.apache.camel.processor.Pipeline.process(Pipeline.java:143)
>        at org.apache.camel.processor.Pipeline.process(Pipeline.java:78)
>        at
> org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:113)
>        at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
>        at
> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
>        at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
>        at
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:68)
>        at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
>        at
> org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:61)
>        at
> org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:99)
>        at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:91)
>        at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:85)
>        at
> org.apache.camel.processor.UnitOfWorkProducer.process(UnitOfWorkProducer.java:63)
>        at
> org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:333)
>        at
> org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:304)
>        at
> org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:208)
>        at
> org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:303)
>        at org.apache.camel.impl.ProducerCache.send(ProducerCache.java:154)
>        at
> org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:110)
>        at
> org.apache.camel.impl.DefaultProducerTemplate.sendBodyAndHeader(DefaultProducerTemplate.java:149)
>        at
> org.apache.camel.impl.DefaultProducerTemplate.sendBodyAndHeader(DefaultProducerTemplate.java:145)
>        at
> org.fusesource.esb.audit.camel.AuditInterceptorWithInOnlyTest.testInOnlyWithErrorHandler(AuditInterceptorWithInOnlyTest.java:55)
>
> 2) Camel route
>
>    protected RouteBuilder createRouteBuilder() throws Exception {
>        return new RouteBuilder() {
>            @Override
>            public void configure() throws Exception {
>
>                getContext().addInterceptStrategy(
>                        new AuditInterceptStrategy(getRepository()));
>                onException(OrderFailedException.class).handled(true).bean(
>                        MockOrderService.class,
> "orderFailed").to("mock:error");
>                // let's not handle any runtime exceptions
>                onException(RuntimeCamelException.class).handled(false);
>
>                from("direct:in-only").to("mock:in-only");
>
>                errorHandler(deadLetterChannel("mock:error")
>                        .maximumRedeliveries(1));
>                from("direct:start")
>                        .bean(MockOrderService.class, "handleOrder").to(
>                                "mock:result");
>                from("direct:file").to("mock:file").throwException(
>                        new RuntimeCamelException(
>                                "Something is completely going wrong
> here!"));
>            }
>        };
>    }
>
> 3) test code
>
>    public void testInOnlyWithErrorHandler() throws Exception {
>
>        MockEndpoint error = getMockEndpoint("mock:error");
>        error.expectedMessageCount(1);
>        MockEndpoint result = getMockEndpoint("mock:result");
>        result.expectedMessageCount(0);
>        template.sendBodyAndHeader("direct:start", "Order: fail",
> "customerid",    "555"); = line 55 where error is reported
>
>        error.assertIsSatisfied();
>        result.assertIsSatisfied();
>
>        Exchange exchange = error.getExchanges().get(0);
>        System.out.println("PROPERTIES ERROR: " +
> exchange.getProperties().toString());
>        assertStatus(exchange, ExchangeStatus.Done.toString());
>
>    }
>
> Kind regards,
>
> Charles Moulliard
>
> Senior Enterprise Architect (J2EE, .NET, SOA)
> Apache Camel - Karaf - ServiceMix Committer
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Blog : http://cmoulliard.blogspot.com |  Twitter :
> http://twitter.com/cmoulliard
> Linkedin : http://www.linkedin.com/in/charlesmoulliard | Skype: cmoulliard
>



-- 
Claus Ibsen
Apache Camel Committer

Author of Camel in Action: http://www.manning.com/ibsen/
Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus

Mime
View raw message