Author: gnodet
Date: Fri Sep 29 01:37:33 2006
New Revision: 451163
URL: http://svn.apache.org/viewvc?view=rev&rev=451163
Log:
SM-603: NPE in StandardConsumerProcessor
Added:
incubator/servicemix/branches/servicemix-3.0/servicemix-jms/src/test/java/org/apache/servicemix/jms/JmsStandardTest.java
Modified:
incubator/servicemix/branches/servicemix-3.0/servicemix-jms/src/main/java/org/apache/servicemix/jms/AbstractJmsProcessor.java
incubator/servicemix/branches/servicemix-3.0/servicemix-jms/src/main/java/org/apache/servicemix/jms/jca/JcaProviderProcessor.java
incubator/servicemix/branches/servicemix-3.0/servicemix-jms/src/test/resources/jndi.properties
Modified:
incubator/servicemix/branches/servicemix-3.0/servicemix-jms/src/main/java/org/apache/servicemix/jms/AbstractJmsProcessor.java
URL:
http://svn.apache.org/viewvc/incubator/servicemix/branches/servicemix-3.0/servicemix-jms/src/main/java/org/apache/servicemix/jms/AbstractJmsProcessor.java?view=diff&rev=451163&r1=451162&r2=451163
==============================================================================
---
incubator/servicemix/branches/servicemix-3.0/servicemix-jms/src/main/java/org/apache/servicemix/jms/AbstractJmsProcessor.java
(original)
+++
incubator/servicemix/branches/servicemix-3.0/servicemix-jms/src/main/java/org/apache/servicemix/jms/AbstractJmsProcessor.java
Fri Sep 29 01:37:33 2006
@@ -67,11 +67,10 @@
}
public void start() throws Exception {
- InitialContext ctx = null;
- ConnectionFactory connectionFactory = null;
try {
- // First check configured connectionFactory on the endpoint
- connectionFactory = getConnectionFactory();
+ InitialContext ctx = getInitialContext();
+ ConnectionFactory connectionFactory = null;
+ connectionFactory = getConnectionFactory(ctx);
connection = connectionFactory.createConnection();
connection.start();
doStart(ctx);
@@ -82,20 +81,14 @@
// TODO: log
}
throw e;
- } finally {
- if (ctx != null) {
- ctx.close();
- }
}
}
- protected ConnectionFactory getConnectionFactory() throws NamingException {
- InitialContext ctx = null;
+ protected ConnectionFactory getConnectionFactory(InitialContext ctx)
throws NamingException {
// First check configured connectionFactory on the endpoint
ConnectionFactory connectionFactory = endpoint.getConnectionFactory();
// Then, check for jndi connection factory name on the endpoint
if (connectionFactory == null &&
endpoint.getJndiConnectionFactoryName() != null) {
- ctx = getInitialContext();
connectionFactory = (ConnectionFactory)
ctx.lookup(endpoint.getJndiConnectionFactoryName());
}
// Check for a configured connectionFactory on the configuration
@@ -104,7 +97,6 @@
}
// Check for jndi connection factory name on the configuration
if (connectionFactory == null &&
endpoint.getConfiguration().getJndiConnectionFactoryName() != null) {
- ctx = getInitialContext();
connectionFactory = (ConnectionFactory)
ctx.lookup(endpoint.getConfiguration().getJndiConnectionFactoryName());
}
return connectionFactory;
Modified:
incubator/servicemix/branches/servicemix-3.0/servicemix-jms/src/main/java/org/apache/servicemix/jms/jca/JcaProviderProcessor.java
URL:
http://svn.apache.org/viewvc/incubator/servicemix/branches/servicemix-3.0/servicemix-jms/src/main/java/org/apache/servicemix/jms/jca/JcaProviderProcessor.java?view=diff&rev=451163&r1=451162&r2=451163
==============================================================================
---
incubator/servicemix/branches/servicemix-3.0/servicemix-jms/src/main/java/org/apache/servicemix/jms/jca/JcaProviderProcessor.java
(original)
+++
incubator/servicemix/branches/servicemix-3.0/servicemix-jms/src/main/java/org/apache/servicemix/jms/jca/JcaProviderProcessor.java
Fri Sep 29 01:37:33 2006
@@ -49,12 +49,12 @@
}
public void start() throws Exception {
- connectionFactory = getConnectionFactory();
+ InitialContext ctx = getInitialContext();
+ connectionFactory = getConnectionFactory(ctx);
channel =
endpoint.getServiceUnit().getComponent().getComponentContext().getDeliveryChannel();
destination = endpoint.getDestination();
if (destination == null) {
if (endpoint.getJndiDestinationName() != null) {
- InitialContext ctx = getInitialContext();
destination = (Destination)
ctx.lookup(endpoint.getJndiDestinationName());
} else if (endpoint.getJmsProviderDestinationName() == null) {
throw new IllegalStateException("No destination provided");
Added:
incubator/servicemix/branches/servicemix-3.0/servicemix-jms/src/test/java/org/apache/servicemix/jms/JmsStandardTest.java
URL:
http://svn.apache.org/viewvc/incubator/servicemix/branches/servicemix-3.0/servicemix-jms/src/test/java/org/apache/servicemix/jms/JmsStandardTest.java?view=auto&rev=451163
==============================================================================
---
incubator/servicemix/branches/servicemix-3.0/servicemix-jms/src/test/java/org/apache/servicemix/jms/JmsStandardTest.java
(added)
+++
incubator/servicemix/branches/servicemix-3.0/servicemix-jms/src/test/java/org/apache/servicemix/jms/JmsStandardTest.java
Fri Sep 29 01:37:33 2006
@@ -0,0 +1,82 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.servicemix.jms;
+
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.xml.namespace.QName;
+
+import org.apache.activemq.ActiveMQConnectionFactory;
+import org.apache.activemq.broker.BrokerService;
+import org.apache.activemq.jndi.ActiveMQInitialContextFactory;
+import org.apache.activemq.xbean.BrokerFactoryBean;
+import org.apache.servicemix.jbi.container.JBIContainer;
+import org.springframework.core.io.ClassPathResource;
+
+import junit.framework.TestCase;
+
+public class JmsStandardTest extends TestCase {
+
+ protected JBIContainer container;
+ protected BrokerService broker;
+ protected ActiveMQConnectionFactory connectionFactory;
+
+ protected void setUp() throws Exception {
+ System.setProperty(Context.INITIAL_CONTEXT_FACTORY,
ActiveMQInitialContextFactory.class.getName());
+ System.setProperty(Context.PROVIDER_URL, "tcp://localhost:61216");
+
+
+ BrokerFactoryBean bfb = new BrokerFactoryBean(new
ClassPathResource("org/apache/servicemix/jms/activemq.xml"));
+ bfb.afterPropertiesSet();
+ broker = bfb.getBroker();
+ broker.start();
+
+ container = new JBIContainer();
+ container.setUseMBeanServer(true);
+ container.setCreateMBeanServer(true);
+ container.setMonitorInstallationDirectory(false);
+ container.setNamingContext(new InitialContext());
+ container.init();
+
+ connectionFactory = new
ActiveMQConnectionFactory("tcp://localhost:61216");
+ }
+
+ protected void tearDown() throws Exception {
+ if (container != null) {
+ container.shutDown();
+ }
+ if (broker != null) {
+ broker.stop();
+ }
+ }
+
+ public void test() throws Exception {
+ JmsSpringComponent jms = new JmsSpringComponent();
+ JmsEndpoint ep = new JmsEndpoint();
+
ep.setInitialContextFactory(ActiveMQInitialContextFactory.class.getName());
+ ep.setJndiProviderURL("tcp://localhost:61216");
+ ep.setJndiConnectionFactoryName("ConnectionFactory");
+ ep.setJndiDestinationName("MyQueue");
+ ep.setProcessorName("standard");
+ ep.setRoleAsString("provider");
+ ep.setService(new QName("service"));
+ ep.setEndpoint("endpoint");
+ jms.setEndpoints(new JmsEndpoint[] { ep });
+ container.activateComponent(jms, "jms");
+ container.start();
+ }
+}
Modified:
incubator/servicemix/branches/servicemix-3.0/servicemix-jms/src/test/resources/jndi.properties
URL:
http://svn.apache.org/viewvc/incubator/servicemix/branches/servicemix-3.0/servicemix-jms/src/test/resources/jndi.properties?view=diff&rev=451163&r1=451162&r2=451163
==============================================================================
---
incubator/servicemix/branches/servicemix-3.0/servicemix-jms/src/test/resources/jndi.properties
(original)
+++
incubator/servicemix/branches/servicemix-3.0/servicemix-jms/src/test/resources/jndi.properties
Fri Sep 29 01:37:33 2006
@@ -23,4 +23,6 @@
java.naming.factory.initial =
org.apache.xbean.spring.jndi.SpringInitialContextFactory
java.naming.provider.url = jndi.xml
+queue.MyQueue = MyQueue
+
# END SNIPPET: jndi