You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by de...@apache.org on 2010/04/09 15:31:36 UTC

svn commit: r932403 - in /activemq/trunk: activemq-core/ activemq-core/src/main/java/org/apache/activemq/transport/vm/ assembly/src/release/conf/ assembly/src/release/webapps/camel/WEB-INF/

Author: dejanb
Date: Fri Apr  9 13:31:36 2010
New Revision: 932403

URL: http://svn.apache.org/viewvc?rev=932403&view=rev
Log:
https://issues.apache.org/activemq/browse/AMQ-2448 - thread leak when network trying to connect to unavailable broker

Modified:
    activemq/trunk/activemq-core/pom.xml
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/vm/VMTransport.java
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/vm/VMTransportFactory.java
    activemq/trunk/assembly/src/release/conf/camel.xml
    activemq/trunk/assembly/src/release/webapps/camel/WEB-INF/applicationContext.xml

Modified: activemq/trunk/activemq-core/pom.xml
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/pom.xml?rev=932403&r1=932402&r2=932403&view=diff
==============================================================================
--- activemq/trunk/activemq-core/pom.xml (original)
+++ activemq/trunk/activemq-core/pom.xml Fri Apr  9 13:31:36 2010
@@ -530,9 +530,6 @@
             <!-- breaks hudson: disable till we get a chance to give it the time that it needs - http://hudson.zones.apache.org/hudson/job/ActiveMQ/org.apache.activemq$activemq-core/199/testReport/org.apache.activemq.network/BrokerNetworkWithStuckMessagesTest/testBrokerNetworkWithStuckMessages/ -->
             <exclude>**/BrokerNetworkWithStuckMessagesTest.*</exclude>
             
-            <!-- until https://issues.apache.org/activemq/browse/AMQ-2448 is fixed -->
-            <exclude>**/VmTransportNetworkBrokerTest.*</exclude>
-            
           </excludes>
         </configuration>
       </plugin>

Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/vm/VMTransport.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/vm/VMTransport.java?rev=932403&r1=932402&r2=932403&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/vm/VMTransport.java (original)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/vm/VMTransport.java Fri Apr  9 13:31:36 2010
@@ -109,11 +109,15 @@ public class VMTransport implements Tran
             peer.enqueueValve.decrement();
         }
 
+        dispatch(peer, transportListener, command);
+    }
+    
+    public void dispatch(VMTransport transport, TransportListener transportListener, Object command) {
         if( transportListener!=null ) {
             if( command == DISCONNECT ) {
                 transportListener.onException(new TransportDisposedIOException("Peer (" + peer.toString() + ") disposed."));
             } else {
-                peer.receiveCounter++;
+                transport.receiveCounter++;
                 transportListener.onCommand(command);
             }
         }
@@ -129,7 +133,7 @@ public class VMTransport implements Tran
                 Object command;
                 while ((command = messageQueue.poll()) != null && !stopping.get() ) {
                     receiveCounter++;
-                    transportListener.onCommand(command);
+                    dispatch(this, transportListener, command);
                 }
             }
             started = true;
@@ -149,7 +153,14 @@ public class VMTransport implements Tran
         
         // If stop() is called while being start()ed.. then we can't stop until we return to the start() method.
         if( enqueueValve.isOn() ) {
-
+        	
+            // let the peer know that we are disconnecting..
+            try {
+            	peer.transportListener.onException(new TransportDisposedIOException("Peer (" + peer.toString() + ") disposed."));
+            } catch (Exception ignore) {
+            }
+        	
+        	
             TaskRunner tr = null;
             try {
                 enqueueValve.turnOff();
@@ -168,12 +179,10 @@ public class VMTransport implements Tran
             if (tr != null) {
                 tr.shutdown(1000);
             }
-            // let the peer know that we are disconnecting..
-            try {
-                oneway(DISCONNECT);
-            } catch (Exception ignore) {
-            }
+            
+
         }
+        
     }
     
     /**

Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/vm/VMTransportFactory.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/vm/VMTransportFactory.java?rev=932403&r1=932402&r2=932403&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/vm/VMTransportFactory.java (original)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/vm/VMTransportFactory.java Fri Apr  9 13:31:36 2010
@@ -206,16 +206,7 @@ public class VMTransportFactory extends 
 
     public static void stopped(VMTransportServer server) {
         String host = server.getBindURI().getHost();
-        SERVERS.remove(host);
-        TransportConnector connector = CONNECTORS.remove(host);
-        if (connector != null) {
-            LOG.debug("Shutting down VM connectors for broker: " + host);
-            ServiceSupport.dispose(connector);
-            BrokerService broker = BROKERS.remove(host);
-            if (broker != null) {
-                ServiceSupport.dispose(broker);
-            }
-        }
+        stopped(host);
     }
 
     public static void stopped(String host) {

Modified: activemq/trunk/assembly/src/release/conf/camel.xml
URL: http://svn.apache.org/viewvc/activemq/trunk/assembly/src/release/conf/camel.xml?rev=932403&r1=932402&r2=932403&view=diff
==============================================================================
--- activemq/trunk/assembly/src/release/conf/camel.xml (original)
+++ activemq/trunk/assembly/src/release/conf/camel.xml Fri Apr  9 13:31:36 2010
@@ -60,6 +60,5 @@
             <property name="password" value="${activemq.password}"/>
           </bean>
         </property>
-        <property name="useSingleConnection" value="true" />
     </bean>
 </beans>

Modified: activemq/trunk/assembly/src/release/webapps/camel/WEB-INF/applicationContext.xml
URL: http://svn.apache.org/viewvc/activemq/trunk/assembly/src/release/webapps/camel/WEB-INF/applicationContext.xml?rev=932403&r1=932402&r2=932403&view=diff
==============================================================================
--- activemq/trunk/assembly/src/release/webapps/camel/WEB-INF/applicationContext.xml (original)
+++ activemq/trunk/assembly/src/release/webapps/camel/WEB-INF/applicationContext.xml Fri Apr  9 13:31:36 2010
@@ -58,6 +58,5 @@
             <property name="password" value="${activemq.password}"/>
           </bean>
         </property>
-        <property name="useSingleConnection" value="true" />
     </bean>
 </beans>