NoSuchEndpointException when using @RecipientList, but messages get routed 
correctly
------------------------------------------------------------------------------------

                 Key: CAMEL-2507
                 URL: https://issues.apache.org/activemq/browse/CAMEL-2507
             Project: Apache Camel
          Issue Type: Bug
          Components: camel-core
    Affects Versions: 2.2.0
            Reporter: Norman Maurer


When using @RecipientList for routing messages to an Endpoint, the messages get 
routed without a problem. But after a few seconds I see the following Exception:

ERROR 13:15:17,596 | org.apache.camel.processor.DefaultErrorHandler | Failed 
delivery for exchangeId: 51ba5471-fac6-458c-b280-066041368f69. Exhausted after 
delivery attempt: 1 caught: org.apache.camel.N
oSuchEndpointException: No endpoint could be found for: 
org.apache.james.transport.camel.inmemorym...@5422fe09, please check your 
classpath contains the needed camel component jar.
org.apache.camel.NoSuchEndpointException: No endpoint could be found for: 
org.apache.james.transport.camel.inmemorym...@5422fe09, please check your 
classpath contains the needed camel component jar.
        at 
org.apache.camel.util.CamelContextHelper.getMandatoryEndpoint(CamelContextHelper.java:48)
        at 
org.apache.camel.util.ExchangeHelper.resolveEndpoint(ExchangeHelper.java:82)
        at 
org.apache.camel.processor.RecipientList.resolveEndpoint(RecipientList.java:119)
        at 
org.apache.camel.processor.RecipientList.sendToRecipientList(RecipientList.java:93)
        at 
org.apache.camel.processor.RecipientList.process(RecipientList.java:81)
        at 
org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
        at 
org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
        at 
org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:161)
        at 
org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:177)
        at 
org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:143)
        at 
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
        at 
org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49)
        at 
org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:228)
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:74)
        at 
org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
        at 
org.apache.camel.processor.ChoiceProcessor.process(ChoiceProcessor.java:51)
        at 
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67)
        at 
org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
        at 
org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
        at 
org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:161)
        at 
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67)
        at 
org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:177)
        at 
org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:143)
        at 
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
        at 
org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49)
        at 
org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:228)
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:74)
        at 
org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:177)
        at 
org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:143)
        at 
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
        at 
org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49)
        at 
org.apache.camel.processor.MulticastProcessor.doProcess(MulticastProcessor.java:266)
        at 
org.apache.camel.processor.MulticastProcessor.doProcessSequential(MulticastProcessor.java:218)
        at 
org.apache.camel.processor.MulticastProcessor.process(MulticastProcessor.java:137)
        at 
org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
        at 
org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
        at 
org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:161)
        at 
org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:177)
        at 
org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:143)
        at 
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
        at 
org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49)
        at 
org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:228)
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:74)
        at 
org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
        at 
org.apache.camel.processor.ChoiceProcessor.process(ChoiceProcessor.java:51)
        at 
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67)
        at 
org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
        at 
org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
        at 
org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:161)
        at 
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67)
at 
org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:177)
        at 
org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:143)
        at 
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
        at 
org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49)
        at 
org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:228)
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:74)
        at 
org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:66)
        at 
org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
        at 
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67)
        at 
org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:84)
        at 
org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:559)
        at 
org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:498)
        at 
org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:467)
        at 
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:323)
        at 
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:261)
        at 
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:977)
        at 
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:969)
        at 
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:871)
        at java.lang.Thread.run(Thread.java:637)


When switching to use routingSlip the error is gone. Here is a simple DSL to 
reproduce it:

from("activemq:queue:test").recipientList().method(MessageRouter.class);

MessageRouter.java:
public class MessageRouter {
    
    @RecipientList
    public String to(l) {
        String queueName = "activemq:queue:test2";
        return queueName;
    }
}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to