I've tested with versions 2.10.3 and 2.11.0.
This is just a short example that can reproduce described problem. You can
put anything else in the splitter, it will not be reached.
Reducing unnecessary code showed that example worked if "seda" was replaced
with "direct" or "maximumRedeliveries" removed, so I guess problem is
somehow related to that.
Here is stack trace after it got stucked (I've paused the thread):
Daemon Thread [Camel (camel-1) thread #0 - seda://queue1] (Suspended)
DefaultCamelContext.getErrorHandlerExecutorService() line: 1321
DeadLetterChannel(RedeliveryErrorHandler).doStart() line: 1131
DeadLetterChannel(ChildServiceSupport).start(boolean) line: 41
DeadLetterChannel(ChildServiceSupport).start() line: 28
ServiceHelper.startService(Service) line: 64
ServiceHelper.startService(Object) line: 54
ServiceHelper.startServices(Object...) line: 75
RouteContextProcessor(DelegateAsyncProcessor).doStart() line: 78
RouteContextProcessor(ServiceSupport).start() line: 61
ServiceHelper.startService(Service) line: 64
ServiceHelper.startService(Object) line: 54
ServiceHelper.startServices(Object...) line: 75
UnitOfWorkProcessor(DelegateAsyncProcessor).doStart() line: 78
UnitOfWorkProcessor.doStart() line: 88
UnitOfWorkProcessor(ServiceSupport).start() line: 61
ServiceHelper.startService(Service) line: 64
ServiceHelper.startService(Object) line: 54
ServiceHelper.startServices(Object...) line: 75
Splitter(MulticastProcessor).createErrorHandler(RouteContext, Exchange,
Processor) line: 876
Splitter(MulticastProcessor).createProcessorExchangePair(int, Processor,
Exchange, RouteContext) line: 833
Splitter$1$1.next() line: 178
Splitter$1$1.next() line: 133
Splitter.createProcessorExchangePairsList(Exchange, Object) line: 195
Splitter.createProcessorExchangePairs(Exchange) line: 113
Splitter(MulticastProcessor).process(Exchange, AsyncCallback) line: 206
Splitter.process(Exchange, AsyncCallback) line: 98
AsyncProcessorHelper.process(AsyncProcessor, Exchange, AsyncCallback)
line:
73
BacklogTracerInterceptor(DelegateAsyncProcessor).processNext(Exchange,
AsyncCallback) line: 99
BacklogTracerInterceptor(DelegateAsyncProcessor).process(Exchange,
AsyncCallback) line: 90
BacklogTracerInterceptor.process(Exchange, AsyncCallback) line: 84
AsyncProcessorHelper.process(AsyncProcessor, Exchange, AsyncCallback)
line:
73
TraceInterceptor(DelegateAsyncProcessor).processNext(Exchange,
AsyncCallback) line: 99
TraceInterceptor(DelegateAsyncProcessor).process(Exchange,
AsyncCallback)
line: 90
TraceInterceptor.process(Exchange, AsyncCallback) line: 163
AsyncProcessorHelper.process(AsyncProcessor, Exchange, AsyncCallback)
line:
73
DeadLetterChannel(RedeliveryErrorHandler).processErrorHandler(Exchange,
AsyncCallback, RedeliveryErrorHandler$RedeliveryData) line: 390
DeadLetterChannel(RedeliveryErrorHandler).process(Exchange,
AsyncCallback)
line: 273
RouteContextProcessor.processNext(Exchange, AsyncCallback) line: 46
RouteContextProcessor(DelegateAsyncProcessor).process(Exchange,
AsyncCallback) line: 90
DefaultChannel.process(Exchange, AsyncCallback) line: 335
AsyncProcessorHelper.process(AsyncProcessor, Exchange, AsyncCallback)
line:
73
Pipeline.process(Exchange, Exchange, AsyncCallback, Iterator,
AsyncProcessor) line: 117
Pipeline.process(Exchange, AsyncCallback) line: 80
RouteContextProcessor.processNext(Exchange, AsyncCallback) line: 46
RouteContextProcessor(DelegateAsyncProcessor).process(Exchange,
AsyncCallback) line: 90
UnitOfWorkProcessor.processAsync(Exchange, AsyncCallback, UnitOfWork)
line:
150
UnitOfWorkProcessor.process(Exchange, AsyncCallback) line: 117
RouteInflightRepositoryProcessor.processNext(Exchange, AsyncCallback)
line:
48
RouteInflightRepositoryProcessor(DelegateAsyncProcessor).process(Exchange,
AsyncCallback) line: 90
AsyncProcessorHelper.process(AsyncProcessor, Exchange, AsyncCallback)
line:
73
InstrumentationProcessor(DelegateAsyncProcessor).processNext(Exchange,
AsyncCallback) line: 99
InstrumentationProcessor(DelegateAsyncProcessor).process(Exchange,
AsyncCallback) line: 90
InstrumentationProcessor.process(Exchange, AsyncCallback) line: 72
AsyncProcessorHelper.process(AsyncProcessor, Exchange, AsyncCallback)
line:
73
SedaConsumer.sendToConsumers(Exchange) line: 275
SedaConsumer.doRun() line: 183
SedaConsumer.run() line: 139
Re