[jboss-cvs] JBoss Messaging SVN: r6003 - trunk/src/main/org/jboss/messaging/core/remoting/impl/invm.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Mar 5 04:22:12 EST 2009


Author: timfox
Date: 2009-03-05 04:22:12 -0500 (Thu, 05 Mar 2009)
New Revision: 6003

Modified:
   trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/InVMAcceptor.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/InVMConnector.java
Log:
attempt to fix deadlock

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/InVMAcceptor.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/InVMAcceptor.java	2009-03-05 07:05:27 UTC (rev 6002)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/InVMAcceptor.java	2009-03-05 09:22:12 UTC (rev 6003)
@@ -156,13 +156,14 @@
       public void connectionDestroyed(final Object connectionID)
       {
          if (connections.remove(connectionID) != null)
-         {
-            listener.connectionDestroyed(connectionID);
-
+         {            
+            //Execute on different thread to avoid deadlocks
             new Thread()
             {
                public void run()
                {
+                  listener.connectionDestroyed(connectionID);
+                  
                   // Remove on the other side too
                   connector.disconnect((String)connectionID);
                }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/InVMConnector.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/InVMConnector.java	2009-03-05 07:05:27 UTC (rev 6002)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/InVMConnector.java	2009-03-05 09:22:12 UTC (rev 6003)
@@ -184,12 +184,13 @@
       {
          if (connections.remove(connectionID) != null)
          {
-            listener.connectionDestroyed(connectionID);
-
+            //Execute on different thread to avoid deadlocks
             new Thread()
             {
                public void run()
                {
+                  listener.connectionDestroyed(connectionID);
+                  
                   // Close the corresponding connection on the other side
                   acceptor.disconnect((String)connectionID);
                }




More information about the jboss-cvs-commits mailing list