camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Charles Moulliard <cmoulli...@gmail.com>
Subject Camel 2.4 - InterceptStrategy error
Date Thu, 12 Aug 2010 10:50:37 GMT
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

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message