Return-Path: X-Original-To: apmail-camel-issues-archive@minotaur.apache.org Delivered-To: apmail-camel-issues-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id D460D10B58 for ; Fri, 24 Jan 2014 15:42:56 +0000 (UTC) Received: (qmail 49667 invoked by uid 500); 24 Jan 2014 15:42:49 -0000 Delivered-To: apmail-camel-issues-archive@camel.apache.org Received: (qmail 49617 invoked by uid 500); 24 Jan 2014 15:42:48 -0000 Mailing-List: contact issues-help@camel.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@camel.apache.org Delivered-To: mailing list issues@camel.apache.org Received: (qmail 49444 invoked by uid 99); 24 Jan 2014 15:42:44 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 24 Jan 2014 15:42:44 +0000 Date: Fri, 24 Jan 2014 15:42:44 +0000 (UTC) From: "Scott England-Sullivan (JIRA)" To: issues@camel.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (CAMEL-7151) camel-sjms NullPointerException when adding new route with Sjms as producer. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/CAMEL-7151?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13881058#comment-13881058 ] Scott England-Sullivan commented on CAMEL-7151: ----------------------------------------------- Thanks Marios for the bug write up and the execution code. Best Regards, Scott ES > 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 > Assignee: Scott England-Sullivan > > 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)