[ 
https://issues.apache.org/jira/browse/CAMEL-7151?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Marios Trivizas updated CAMEL-7151:
-----------------------------------

    Description: 
The following exception is thrown when adding new route programmatically with 
Sjms as producer:

java.lang.NullPointerException
        at 
java.util.concurrent.ArrayBlockingQueue.checkNotNull(ArrayBlockingQueue.java:145)
        at 
java.util.concurrent.ArrayBlockingQueue.offer(ArrayBlockingQueue.java:296)
        at java.util.AbstractQueue.add(AbstractQueue.java:95)
        at 
java.util.concurrent.ArrayBlockingQueue.add(ArrayBlockingQueue.java:283)
        at 
org.apache.camel.component.sjms.jms.ObjectPool.fillPool(ObjectPool.java:55)
        at 
org.apache.camel.component.sjms.SjmsProducer.doStart(SjmsProducer.java:139)
        at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
        at 
org.apache.camel.impl.ProducerCache.doGetProducer(ProducerCache.java:407)
        at 
org.apache.camel.impl.ProducerCache.acquireProducer(ProducerCache.java:123)
        at 
org.apache.camel.processor.SendProcessor.doStart(SendProcessor.java:191)
        at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
        at 
org.apache.camel.processor.DelegateAsyncProcessor.doStart(DelegateAsyncProcessor.java:79)
        at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
        at 
org.apache.camel.processor.RedeliveryErrorHandler.doStart(RedeliveryErrorHandler.java:1154)
        at 
org.apache.camel.support.ChildServiceSupport.start(ChildServiceSupport.java:41)
        at 
org.apache.camel.support.ChildServiceSupport.start(ChildServiceSupport.java:28)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
        at 
org.apache.camel.processor.interceptor.DefaultChannel.doStart(DefaultChannel.java:155)
        at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:61)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
        at 
org.apache.camel.processor.MulticastProcessor.doStart(MulticastProcessor.java:984)
        at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
        at 
org.apache.camel.processor.DelegateAsyncProcessor.doStart(DelegateAsyncProcessor.java:79)
        at 
org.apache.camel.processor.FilterProcessor.doStart(FilterProcessor.java:80)
        at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:61)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
        at 
org.apache.camel.processor.ChoiceProcessor.doStart(ChoiceProcessor.java:171)
        at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
        at 
org.apache.camel.processor.DelegateAsyncProcessor.doStart(DelegateAsyncProcessor.java:79)
        at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
        at 
org.apache.camel.processor.RedeliveryErrorHandler.doStart(RedeliveryErrorHandler.java:1154)
        at 
org.apache.camel.support.ChildServiceSupport.start(ChildServiceSupport.java:41)
        at 
org.apache.camel.support.ChildServiceSupport.start(ChildServiceSupport.java:28)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
        at 
org.apache.camel.processor.interceptor.DefaultChannel.doStart(DefaultChannel.java:155)
        at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:61)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
        at 
org.apache.camel.processor.MulticastProcessor.doStart(MulticastProcessor.java:984)
        at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
        at 
org.apache.camel.processor.DelegateAsyncProcessor.doStart(DelegateAsyncProcessor.java:79)
        at 
org.apache.camel.processor.FilterProcessor.doStart(FilterProcessor.java:80)
        at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
        at 
org.apache.camel.processor.DelegateAsyncProcessor.doStart(DelegateAsyncProcessor.java:79)
        at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
        at 
org.apache.camel.processor.RedeliveryErrorHandler.doStart(RedeliveryErrorHandler.java:1154)
        at 
org.apache.camel.support.ChildServiceSupport.start(ChildServiceSupport.java:41)
        at 
org.apache.camel.support.ChildServiceSupport.start(ChildServiceSupport.java:28)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
        at 
org.apache.camel.processor.interceptor.DefaultChannel.doStart(DefaultChannel.java:155)
        at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
        at 
org.apache.camel.processor.DelegateAsyncProcessor.doStart(DelegateAsyncProcessor.java:79)
        at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
        at 
org.apache.camel.impl.RouteService.startChildService(RouteService.java:329)
        at org.apache.camel.impl.RouteService.warmUp(RouteService.java:158)
        at 
org.apache.camel.impl.DefaultCamelContext.doWarmUpRoutes(DefaultCamelContext.java:2109)
        at 
org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:2039)
        at 
org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:2061)
        at 
org.apache.camel.impl.DefaultCamelContext.startRouteService(DefaultCamelContext.java:1938)
        at 
org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:772)
        at 
org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:1914)
        at 
org.apache.camel.impl.DefaultCamelContext.addRouteDefinitions(DefaultCamelContext.java:707)
        at 
org.apache.camel.builder.RouteBuilder.populateRoutes(RouteBuilder.java:337)
        at 
org.apache.camel.builder.RouteBuilder.addRoutesToCamelContext(RouteBuilder.java:264)
        at 
org.apache.camel.impl.DefaultCamelContext.addRoutes(DefaultCamelContext.java:669)
        at 
de.groupon.jms.DynamicRoutesManager.addRoute(DynamicRoutesManager.java:178)

Here is my code:
{code}
public static RouteBuilder buildRoute(final DynamicRoute route, final 
CamelContext camelContext, final boolean autoStartup) throws Exception {
                InitialContext ic = 
getInitialContext(route.getSourceEndpoint().getHost(), 
route.getSourceEndpoint().getJndiPort());
                ConnectionFactory srcConnectionFactory = 
(ConnectionFactory)ic.lookup("/connectionFactory/local/" + 
route.getSourceEndpoint().getJndiConnectionFactoryName());
                
((HornetQJMSConnectionFactory)srcConnectionFactory).setReconnectAttempts(-1);
                
((HornetQJMSConnectionFactory)srcConnectionFactory).setRetryInterval(1000);
                
((HornetQJMSConnectionFactory)srcConnectionFactory).setConnectionTTL(120000);
                
((HornetQJMSConnectionFactory)srcConnectionFactory).setClientFailureCheckPeriod(2000);
                
((HornetQJMSConnectionFactory)srcConnectionFactory).setCallTimeout(60000);
                
((HornetQJMSConnectionFactory)srcConnectionFactory).setConsumerWindowSize(4194304);
                
((HornetQJMSConnectionFactory)srcConnectionFactory).setInitialConnectAttempts(-1);
                
((HornetQJMSConnectionFactory)srcConnectionFactory).setUseGlobalPools(false);
                
((HornetQJMSConnectionFactory)srcConnectionFactory).setScheduledThreadPoolMaxSize(5);
                
((HornetQJMSConnectionFactory)srcConnectionFactory).setThreadPoolMaxSize(5);
                camelContext.addComponent(route.getSourceEndpoint().getName(), 
JmsComponent.jmsComponentAutoAcknowledge(srcConnectionFactory));
                ic.close();

                RouteBuilder newRouteBuilder;
                JmsEndpoint dstEndpoint = (JmsEndpoint) 
route.getDestinationEndpoint();
                ic = getInitialContext(dstEndpoint.getHost(), 
dstEndpoint.getJndiPort());
                ConnectionFactory dstConnectionFactory = 
(ConnectionFactory)ic.lookup("/connectionFactory/local/" + 
dstEndpoint.getJndiConnectionFactoryName());
                
((HornetQJMSConnectionFactory)dstConnectionFactory).setReconnectAttempts(-1);
                
((HornetQJMSConnectionFactory)dstConnectionFactory).setRetryInterval(1000);
                
((HornetQJMSConnectionFactory)dstConnectionFactory).setConnectionTTL(120000);
                
((HornetQJMSConnectionFactory)dstConnectionFactory).setClientFailureCheckPeriod(2000);
                
((HornetQJMSConnectionFactory)dstConnectionFactory).setCallTimeout(60000);
                
((HornetQJMSConnectionFactory)dstConnectionFactory).setConsumerWindowSize(4194304);
                
((HornetQJMSConnectionFactory)dstConnectionFactory).setInitialConnectAttempts(-1);
                
((HornetQJMSConnectionFactory)dstConnectionFactory).setUseGlobalPools(false);
                
((HornetQJMSConnectionFactory)dstConnectionFactory).setScheduledThreadPoolMaxSize(5);
                
((HornetQJMSConnectionFactory)dstConnectionFactory).setThreadPoolMaxSize(5);
                SjmsComponent sjms = new SjmsComponent();
                sjms.setConnectionFactory(dstConnectionFactory);
                camelContext.addComponent(dstEndpoint.getName(), sjms);
                ic.close();

                newRouteBuilder = new RouteBuilder() {
                        @Override
                        public void configure() {
                                
errorHandler(deadLetterChannel("log:de.groupon.jms.route.deadletter." + 
route.getName() + 
"?level=ERROR&showBody=true&showHeaders=true&showExchangePattern=false&showBodyType=false").maximumRedeliveries(3).redeliveryDelay(500)
                                                
.retryAttemptedLogLevel(LoggingLevel.WARN).retriesExhaustedLogLevel(LoggingLevel.ERROR)
                                                
.log("de.groupon.jms.route.error." + route.getName()));
                                
from(route.getSourceEndpoint().getCamelUri()).routeId(route.getName()).autoStartup(autoStartup)
                                        
.filter().method(route.getFilterChain(), "filterMessage")
                                        .process(route.getTransformer())
                                        .choice().when(body().isNotNull())
                                                .to(ExchangePattern.InOnly, 
route.getDestinationEndpoint().getCamelUri())
                                                .to("log:de.groupon.jms.route." 
+ route.getName() + 
"?level=INFO&showBody=true&showHeaders=true&showExchangePattern=false&showBodyType=false")
                                                .stop()
                                        .otherwise()
                                                .stop();
                        }
                };
        }
        return newRouteBuilder;
}
{code}

  was:
The following exception is thrown when adding new route programmatically with 
Sjms as producer:

java.lang.NullPointerException
        at 
java.util.concurrent.ArrayBlockingQueue.checkNotNull(ArrayBlockingQueue.java:145)
        at 
java.util.concurrent.ArrayBlockingQueue.offer(ArrayBlockingQueue.java:296)
        at java.util.AbstractQueue.add(AbstractQueue.java:95)
        at 
java.util.concurrent.ArrayBlockingQueue.add(ArrayBlockingQueue.java:283)
        at 
org.apache.camel.component.sjms.jms.ObjectPool.fillPool(ObjectPool.java:55)
        at 
org.apache.camel.component.sjms.SjmsProducer.doStart(SjmsProducer.java:139)
        at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
        at 
org.apache.camel.impl.ProducerCache.doGetProducer(ProducerCache.java:407)
        at 
org.apache.camel.impl.ProducerCache.acquireProducer(ProducerCache.java:123)
        at 
org.apache.camel.processor.SendProcessor.doStart(SendProcessor.java:191)
        at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
        at 
org.apache.camel.processor.DelegateAsyncProcessor.doStart(DelegateAsyncProcessor.java:79)
        at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
        at 
org.apache.camel.processor.RedeliveryErrorHandler.doStart(RedeliveryErrorHandler.java:1154)
        at 
org.apache.camel.support.ChildServiceSupport.start(ChildServiceSupport.java:41)
        at 
org.apache.camel.support.ChildServiceSupport.start(ChildServiceSupport.java:28)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
        at 
org.apache.camel.processor.interceptor.DefaultChannel.doStart(DefaultChannel.java:155)
        at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:61)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
        at 
org.apache.camel.processor.MulticastProcessor.doStart(MulticastProcessor.java:984)
        at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
        at 
org.apache.camel.processor.DelegateAsyncProcessor.doStart(DelegateAsyncProcessor.java:79)
        at 
org.apache.camel.processor.FilterProcessor.doStart(FilterProcessor.java:80)
        at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:61)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
        at 
org.apache.camel.processor.ChoiceProcessor.doStart(ChoiceProcessor.java:171)
        at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
        at 
org.apache.camel.processor.DelegateAsyncProcessor.doStart(DelegateAsyncProcessor.java:79)
        at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
        at 
org.apache.camel.processor.RedeliveryErrorHandler.doStart(RedeliveryErrorHandler.java:1154)
        at 
org.apache.camel.support.ChildServiceSupport.start(ChildServiceSupport.java:41)
        at 
org.apache.camel.support.ChildServiceSupport.start(ChildServiceSupport.java:28)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
        at 
org.apache.camel.processor.interceptor.DefaultChannel.doStart(DefaultChannel.java:155)
        at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:61)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
        at 
org.apache.camel.processor.MulticastProcessor.doStart(MulticastProcessor.java:984)
        at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
        at 
org.apache.camel.processor.DelegateAsyncProcessor.doStart(DelegateAsyncProcessor.java:79)
        at 
org.apache.camel.processor.FilterProcessor.doStart(FilterProcessor.java:80)
        at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
        at 
org.apache.camel.processor.DelegateAsyncProcessor.doStart(DelegateAsyncProcessor.java:79)
        at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
        at 
org.apache.camel.processor.RedeliveryErrorHandler.doStart(RedeliveryErrorHandler.java:1154)
        at 
org.apache.camel.support.ChildServiceSupport.start(ChildServiceSupport.java:41)
        at 
org.apache.camel.support.ChildServiceSupport.start(ChildServiceSupport.java:28)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
        at 
org.apache.camel.processor.interceptor.DefaultChannel.doStart(DefaultChannel.java:155)
        at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
        at 
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
        at 
org.apache.camel.processor.DelegateAsyncProcessor.doStart(DelegateAsyncProcessor.java:79)
        at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
        at 
org.apache.camel.impl.RouteService.startChildService(RouteService.java:329)
        at org.apache.camel.impl.RouteService.warmUp(RouteService.java:158)
        at 
org.apache.camel.impl.DefaultCamelContext.doWarmUpRoutes(DefaultCamelContext.java:2109)
        at 
org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:2039)
        at 
org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:2061)
        at 
org.apache.camel.impl.DefaultCamelContext.startRouteService(DefaultCamelContext.java:1938)
        at 
org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:772)
        at 
org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:1914)
        at 
org.apache.camel.impl.DefaultCamelContext.addRouteDefinitions(DefaultCamelContext.java:707)
        at 
org.apache.camel.builder.RouteBuilder.populateRoutes(RouteBuilder.java:337)
        at 
org.apache.camel.builder.RouteBuilder.addRoutesToCamelContext(RouteBuilder.java:264)
        at 
org.apache.camel.impl.DefaultCamelContext.addRoutes(DefaultCamelContext.java:669)
        at 
de.groupon.jms.DynamicRoutesManager.addRoute(DynamicRoutesManager.java:178)

Here is my code:
{code}
public static RouteBuilder buildRoute(final DynamicRoute route, final 
CamelContext camelContext, final boolean autoStartup) throws Exception {
                InitialContext ic = 
getInitialContext(route.getSourceEndpoint().getHost(), 
route.getSourceEndpoint().getJndiPort());
                ConnectionFactory srcConnectionFactory = 
(ConnectionFactory)ic.lookup("/connectionFactory/local/" + 
route.getSourceEndpoint().getJndiConnectionFactoryName());
                
((HornetQJMSConnectionFactory)srcConnectionFactory).setReconnectAttempts(-1);
                
((HornetQJMSConnectionFactory)srcConnectionFactory).setRetryInterval(1000);
                
((HornetQJMSConnectionFactory)srcConnectionFactory).setConnectionTTL(120000);
                
((HornetQJMSConnectionFactory)srcConnectionFactory).setClientFailureCheckPeriod(2000);
                
((HornetQJMSConnectionFactory)srcConnectionFactory).setCallTimeout(60000);
                
((HornetQJMSConnectionFactory)srcConnectionFactory).setConsumerWindowSize(4194304);
                
((HornetQJMSConnectionFactory)srcConnectionFactory).setInitialConnectAttempts(-1);
                
((HornetQJMSConnectionFactory)srcConnectionFactory).setUseGlobalPools(false);
                
((HornetQJMSConnectionFactory)srcConnectionFactory).setScheduledThreadPoolMaxSize(5);
                
((HornetQJMSConnectionFactory)srcConnectionFactory).setThreadPoolMaxSize(5);
                camelContext.addComponent(route.getSourceEndpoint().getName(), 
JmsComponent.jmsComponentAutoAcknowledge(srcConnectionFactory));
                ic.close();

                RouteBuilder newRouteBuilder;
                if (route.getDestinationEndpoint().isNull()) {
                        newRouteBuilder = new RouteBuilder() {
                                @Override
                                public void configure() {
                                        
errorHandler(deadLetterChannel("log:de.groupon.jms.route.deadletter." + 
route.getName() + 
"?level=ERROR&showBody=true&showHeaders=true&showExchangePattern=false&showBodyType=false").maximumRedeliveries(3).redeliveryDelay(500)
                                                        
.retryAttemptedLogLevel(LoggingLevel.WARN).retriesExhaustedLogLevel(LoggingLevel.ERROR)
                                                        
.log("de.groupon.jms.route.error." + route.getName()));
                                        
from(route.getSourceEndpoint().getCamelUri()).routeId(route.getName()).autoStartup(autoStartup)
                                                        
.filter().method(route.getFilterChain(), "filterMessage")
                                                        
.process(route.getTransformer())
                                                        
.choice().when(body().isNotNull())
                                                                
.to("log:de.groupon.jms.route." + route.getName() + 
"?level=INFO&showBody=true&showHeaders=true&showExchangePattern=false&showBodyType=false").stop()
                                                        .otherwise()
                                                        .stop();
                                }
                        };
                } else {
                        JmsEndpoint dstEndpoint = (JmsEndpoint) 
route.getDestinationEndpoint();
                        ic = getInitialContext(dstEndpoint.getHost(), 
dstEndpoint.getJndiPort());
                        ConnectionFactory dstConnectionFactory = 
(ConnectionFactory)ic.lookup("/connectionFactory/local/" + 
dstEndpoint.getJndiConnectionFactoryName());
                        
((HornetQJMSConnectionFactory)dstConnectionFactory).setReconnectAttempts(-1);
                        
((HornetQJMSConnectionFactory)dstConnectionFactory).setRetryInterval(1000);
                        
((HornetQJMSConnectionFactory)dstConnectionFactory).setConnectionTTL(120000);
                        
((HornetQJMSConnectionFactory)dstConnectionFactory).setClientFailureCheckPeriod(2000);
                        
((HornetQJMSConnectionFactory)dstConnectionFactory).setCallTimeout(60000);
                        
((HornetQJMSConnectionFactory)dstConnectionFactory).setConsumerWindowSize(4194304);
                        
((HornetQJMSConnectionFactory)dstConnectionFactory).setInitialConnectAttempts(-1);
                        
((HornetQJMSConnectionFactory)dstConnectionFactory).setUseGlobalPools(false);
                        
((HornetQJMSConnectionFactory)dstConnectionFactory).setScheduledThreadPoolMaxSize(5);
                        
((HornetQJMSConnectionFactory)dstConnectionFactory).setThreadPoolMaxSize(5);
                        SjmsComponent sjms = new SjmsComponent();
                        sjms.setConnectionFactory(dstConnectionFactory);
                        camelContext.addComponent(dstEndpoint.getName(), sjms);
                        ic.close();

                        newRouteBuilder = new RouteBuilder() {
                                @Override
                                public void configure() {
                                        
errorHandler(deadLetterChannel("log:de.groupon.jms.route.deadletter." + 
route.getName() + 
"?level=ERROR&showBody=true&showHeaders=true&showExchangePattern=false&showBodyType=false").maximumRedeliveries(3).redeliveryDelay(500)
                                                        
.retryAttemptedLogLevel(LoggingLevel.WARN).retriesExhaustedLogLevel(LoggingLevel.ERROR)
                                                        
.log("de.groupon.jms.route.error." + route.getName()));
                                        
from(route.getSourceEndpoint().getCamelUri()).routeId(route.getName()).autoStartup(autoStartup)
                                                
.filter().method(route.getFilterChain(), "filterMessage")
                                                .process(route.getTransformer())
                                                
.choice().when(body().isNotNull())
                                                        
.to(ExchangePattern.InOnly, route.getDestinationEndpoint().getCamelUri())
                                                        
.to("log:de.groupon.jms.route." + route.getName() + 
"?level=INFO&showBody=true&showHeaders=true&showExchangePattern=false&showBodyType=false")
                                                        .stop()
                                                .otherwise()
                                                        .stop();
                                }
                        };
                }
                return newRouteBuilder;
        }
{code}


> camel-sjms NullPointerException when adding new route with Sjms as producer.
> ----------------------------------------------------------------------------
>
>                 Key: CAMEL-7151
>                 URL: https://issues.apache.org/jira/browse/CAMEL-7151
>             Project: Camel
>          Issue Type: Bug
>    Affects Versions: 2.13.0
>            Reporter: Marios Trivizas
>
> The following exception is thrown when adding new route programmatically with 
> Sjms as producer:
> java.lang.NullPointerException
>       at 
> java.util.concurrent.ArrayBlockingQueue.checkNotNull(ArrayBlockingQueue.java:145)
>       at 
> java.util.concurrent.ArrayBlockingQueue.offer(ArrayBlockingQueue.java:296)
>       at java.util.AbstractQueue.add(AbstractQueue.java:95)
>       at 
> java.util.concurrent.ArrayBlockingQueue.add(ArrayBlockingQueue.java:283)
>       at 
> org.apache.camel.component.sjms.jms.ObjectPool.fillPool(ObjectPool.java:55)
>       at 
> org.apache.camel.component.sjms.SjmsProducer.doStart(SjmsProducer.java:139)
>       at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
>       at 
> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
>       at 
> org.apache.camel.impl.ProducerCache.doGetProducer(ProducerCache.java:407)
>       at 
> org.apache.camel.impl.ProducerCache.acquireProducer(ProducerCache.java:123)
>       at 
> org.apache.camel.processor.SendProcessor.doStart(SendProcessor.java:191)
>       at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
>       at 
> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
>       at 
> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
>       at 
> org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
>       at 
> org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
>       at 
> org.apache.camel.processor.DelegateAsyncProcessor.doStart(DelegateAsyncProcessor.java:79)
>       at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
>       at 
> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
>       at 
> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
>       at 
> org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
>       at 
> org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
>       at 
> org.apache.camel.processor.RedeliveryErrorHandler.doStart(RedeliveryErrorHandler.java:1154)
>       at 
> org.apache.camel.support.ChildServiceSupport.start(ChildServiceSupport.java:41)
>       at 
> org.apache.camel.support.ChildServiceSupport.start(ChildServiceSupport.java:28)
>       at 
> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
>       at 
> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
>       at 
> org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
>       at 
> org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
>       at 
> org.apache.camel.processor.interceptor.DefaultChannel.doStart(DefaultChannel.java:155)
>       at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
>       at 
> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
>       at 
> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
>       at 
> org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
>       at 
> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:61)
>       at 
> org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
>       at 
> org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
>       at 
> org.apache.camel.processor.MulticastProcessor.doStart(MulticastProcessor.java:984)
>       at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
>       at 
> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
>       at 
> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
>       at 
> org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
>       at 
> org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
>       at 
> org.apache.camel.processor.DelegateAsyncProcessor.doStart(DelegateAsyncProcessor.java:79)
>       at 
> org.apache.camel.processor.FilterProcessor.doStart(FilterProcessor.java:80)
>       at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
>       at 
> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
>       at 
> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
>       at 
> org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
>       at 
> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:61)
>       at 
> org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
>       at 
> org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
>       at 
> org.apache.camel.processor.ChoiceProcessor.doStart(ChoiceProcessor.java:171)
>       at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
>       at 
> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
>       at 
> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
>       at 
> org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
>       at 
> org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
>       at 
> org.apache.camel.processor.DelegateAsyncProcessor.doStart(DelegateAsyncProcessor.java:79)
>       at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
>       at 
> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
>       at 
> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
>       at 
> org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
>       at 
> org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
>       at 
> org.apache.camel.processor.RedeliveryErrorHandler.doStart(RedeliveryErrorHandler.java:1154)
>       at 
> org.apache.camel.support.ChildServiceSupport.start(ChildServiceSupport.java:41)
>       at 
> org.apache.camel.support.ChildServiceSupport.start(ChildServiceSupport.java:28)
>       at 
> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
>       at 
> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
>       at 
> org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
>       at 
> org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
>       at 
> org.apache.camel.processor.interceptor.DefaultChannel.doStart(DefaultChannel.java:155)
>       at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
>       at 
> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
>       at 
> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
>       at 
> org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
>       at 
> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:61)
>       at 
> org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
>       at 
> org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
>       at 
> org.apache.camel.processor.MulticastProcessor.doStart(MulticastProcessor.java:984)
>       at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
>       at 
> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
>       at 
> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
>       at 
> org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
>       at 
> org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
>       at 
> org.apache.camel.processor.DelegateAsyncProcessor.doStart(DelegateAsyncProcessor.java:79)
>       at 
> org.apache.camel.processor.FilterProcessor.doStart(FilterProcessor.java:80)
>       at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
>       at 
> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
>       at 
> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
>       at 
> org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
>       at 
> org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
>       at 
> org.apache.camel.processor.DelegateAsyncProcessor.doStart(DelegateAsyncProcessor.java:79)
>       at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
>       at 
> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
>       at 
> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
>       at 
> org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
>       at 
> org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
>       at 
> org.apache.camel.processor.RedeliveryErrorHandler.doStart(RedeliveryErrorHandler.java:1154)
>       at 
> org.apache.camel.support.ChildServiceSupport.start(ChildServiceSupport.java:41)
>       at 
> org.apache.camel.support.ChildServiceSupport.start(ChildServiceSupport.java:28)
>       at 
> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
>       at 
> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
>       at 
> org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
>       at 
> org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
>       at 
> org.apache.camel.processor.interceptor.DefaultChannel.doStart(DefaultChannel.java:155)
>       at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
>       at 
> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
>       at 
> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)
>       at 
> org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)
>       at 
> org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:89)
>       at 
> org.apache.camel.processor.DelegateAsyncProcessor.doStart(DelegateAsyncProcessor.java:79)
>       at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
>       at 
> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)
>       at 
> org.apache.camel.impl.RouteService.startChildService(RouteService.java:329)
>       at org.apache.camel.impl.RouteService.warmUp(RouteService.java:158)
>       at 
> org.apache.camel.impl.DefaultCamelContext.doWarmUpRoutes(DefaultCamelContext.java:2109)
>       at 
> org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:2039)
>       at 
> org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:2061)
>       at 
> org.apache.camel.impl.DefaultCamelContext.startRouteService(DefaultCamelContext.java:1938)
>       at 
> org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:772)
>       at 
> org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:1914)
>       at 
> org.apache.camel.impl.DefaultCamelContext.addRouteDefinitions(DefaultCamelContext.java:707)
>       at 
> org.apache.camel.builder.RouteBuilder.populateRoutes(RouteBuilder.java:337)
>       at 
> org.apache.camel.builder.RouteBuilder.addRoutesToCamelContext(RouteBuilder.java:264)
>       at 
> org.apache.camel.impl.DefaultCamelContext.addRoutes(DefaultCamelContext.java:669)
>       at 
> de.groupon.jms.DynamicRoutesManager.addRoute(DynamicRoutesManager.java:178)
> Here is my code:
> {code}
> public static RouteBuilder buildRoute(final DynamicRoute route, final 
> CamelContext camelContext, final boolean autoStartup) throws Exception {
>               InitialContext ic = 
> getInitialContext(route.getSourceEndpoint().getHost(), 
> route.getSourceEndpoint().getJndiPort());
>               ConnectionFactory srcConnectionFactory = 
> (ConnectionFactory)ic.lookup("/connectionFactory/local/" + 
> route.getSourceEndpoint().getJndiConnectionFactoryName());
>               
> ((HornetQJMSConnectionFactory)srcConnectionFactory).setReconnectAttempts(-1);
>               
> ((HornetQJMSConnectionFactory)srcConnectionFactory).setRetryInterval(1000);
>               
> ((HornetQJMSConnectionFactory)srcConnectionFactory).setConnectionTTL(120000);
>               
> ((HornetQJMSConnectionFactory)srcConnectionFactory).setClientFailureCheckPeriod(2000);
>               
> ((HornetQJMSConnectionFactory)srcConnectionFactory).setCallTimeout(60000);
>               
> ((HornetQJMSConnectionFactory)srcConnectionFactory).setConsumerWindowSize(4194304);
>               
> ((HornetQJMSConnectionFactory)srcConnectionFactory).setInitialConnectAttempts(-1);
>               
> ((HornetQJMSConnectionFactory)srcConnectionFactory).setUseGlobalPools(false);
>               
> ((HornetQJMSConnectionFactory)srcConnectionFactory).setScheduledThreadPoolMaxSize(5);
>               
> ((HornetQJMSConnectionFactory)srcConnectionFactory).setThreadPoolMaxSize(5);
>               camelContext.addComponent(route.getSourceEndpoint().getName(), 
> JmsComponent.jmsComponentAutoAcknowledge(srcConnectionFactory));
>               ic.close();
>               RouteBuilder newRouteBuilder;
>               JmsEndpoint dstEndpoint = (JmsEndpoint) 
> route.getDestinationEndpoint();
>               ic = getInitialContext(dstEndpoint.getHost(), 
> dstEndpoint.getJndiPort());
>               ConnectionFactory dstConnectionFactory = 
> (ConnectionFactory)ic.lookup("/connectionFactory/local/" + 
> dstEndpoint.getJndiConnectionFactoryName());
>               
> ((HornetQJMSConnectionFactory)dstConnectionFactory).setReconnectAttempts(-1);
>               
> ((HornetQJMSConnectionFactory)dstConnectionFactory).setRetryInterval(1000);
>               
> ((HornetQJMSConnectionFactory)dstConnectionFactory).setConnectionTTL(120000);
>               
> ((HornetQJMSConnectionFactory)dstConnectionFactory).setClientFailureCheckPeriod(2000);
>               
> ((HornetQJMSConnectionFactory)dstConnectionFactory).setCallTimeout(60000);
>               
> ((HornetQJMSConnectionFactory)dstConnectionFactory).setConsumerWindowSize(4194304);
>               
> ((HornetQJMSConnectionFactory)dstConnectionFactory).setInitialConnectAttempts(-1);
>               
> ((HornetQJMSConnectionFactory)dstConnectionFactory).setUseGlobalPools(false);
>               
> ((HornetQJMSConnectionFactory)dstConnectionFactory).setScheduledThreadPoolMaxSize(5);
>               
> ((HornetQJMSConnectionFactory)dstConnectionFactory).setThreadPoolMaxSize(5);
>               SjmsComponent sjms = new SjmsComponent();
>               sjms.setConnectionFactory(dstConnectionFactory);
>               camelContext.addComponent(dstEndpoint.getName(), sjms);
>               ic.close();
>               newRouteBuilder = new RouteBuilder() {
>                       @Override
>                       public void configure() {
>                               
> errorHandler(deadLetterChannel("log:de.groupon.jms.route.deadletter." + 
> route.getName() + 
> "?level=ERROR&showBody=true&showHeaders=true&showExchangePattern=false&showBodyType=false").maximumRedeliveries(3).redeliveryDelay(500)
>                                               
> .retryAttemptedLogLevel(LoggingLevel.WARN).retriesExhaustedLogLevel(LoggingLevel.ERROR)
>                                               
> .log("de.groupon.jms.route.error." + route.getName()));
>                               
> from(route.getSourceEndpoint().getCamelUri()).routeId(route.getName()).autoStartup(autoStartup)
>                                       
> .filter().method(route.getFilterChain(), "filterMessage")
>                                       .process(route.getTransformer())
>                                       .choice().when(body().isNotNull())
>                                               .to(ExchangePattern.InOnly, 
> route.getDestinationEndpoint().getCamelUri())
>                                               .to("log:de.groupon.jms.route." 
> + route.getName() + 
> "?level=INFO&showBody=true&showHeaders=true&showExchangePattern=false&showBodyType=false")
>                                               .stop()
>                                       .otherwise()
>                                               .stop();
>                       }
>               };
>       }
>       return newRouteBuilder;
> }
> {code}



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to