Author: struberg
Date: Fri Aug  3 22:14:02 2012
New Revision: 1369233

URL: http://svn.apache.org/viewvc?rev=1369233&view=rev
Log:
OWB-691 cleanly close the connection

Modified:
    
openwebbeans/trunk/webbeans-jms/src/main/java/org/apache/webbeans/jms/util/JmsProxyHandler.java

Modified: 
openwebbeans/trunk/webbeans-jms/src/main/java/org/apache/webbeans/jms/util/JmsProxyHandler.java
URL: 
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-jms/src/main/java/org/apache/webbeans/jms/util/JmsProxyHandler.java?rev=1369233&r1=1369232&r2=1369233&view=diff
==============================================================================
--- 
openwebbeans/trunk/webbeans-jms/src/main/java/org/apache/webbeans/jms/util/JmsProxyHandler.java
 (original)
+++ 
openwebbeans/trunk/webbeans-jms/src/main/java/org/apache/webbeans/jms/util/JmsProxyHandler.java
 Fri Aug  3 22:14:02 2012
@@ -165,32 +165,39 @@ public class JmsProxyHandler implements 
         }
         catch (JMSException e)
         {
-            if (connection != null)
-            {
-                try
-                {
-                    connection.close();
-                }
-                catch (JMSException jmse)
-                {
-                    // do nothing, we are already throwing up anyway...
-                }
-            }
+            ensureConnectionClosing(connection);
             throw new WebBeansException("Unable to create jms session", e);
         }
 
     }
 
+    private void ensureConnectionClosing(Connection connection)
+    {
+        if (connection != null)
+        {
+            try
+            {
+                connection.close();
+            }
+            catch (JMSException jmse)
+            {
+                // do nothing, we are already throwing up anyway...
+            }
+        }
+    }
+
     private MessageProducer createMessageProducers()
     {
+        Connection connection = null;
         try
         {
-            Connection connection = createOrReturnQueueOrTopicConnection();
+            connection = createOrReturnQueueOrTopicConnection();
 
             return connection.createSession(false, 
Session.AUTO_ACKNOWLEDGE).createProducer(createOrReturnQueueOrTopic());
         }
         catch (JMSException e)
         {
+            ensureConnectionClosing(connection);
             throw new WebBeansException("Unable to create jms message 
producer", e);
         }
 
@@ -198,14 +205,16 @@ public class JmsProxyHandler implements 
 
     private MessageConsumer createMessageConsumers()
     {
+        Connection connection = null;
         try
         {
-            Connection connection = createOrReturnQueueOrTopicConnection();
+            connection = createOrReturnQueueOrTopicConnection();
 
             return connection.createSession(false, 
Session.AUTO_ACKNOWLEDGE).createConsumer(createOrReturnQueueOrTopic());
         }
         catch (JMSException e)
         {
+            ensureConnectionClosing(connection);
             throw new WebBeansException("Unable to create jms message 
producer", e);
         }
 


Reply via email to