You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kw...@apache.org on 2016/02/11 23:04:33 UTC

svn commit: r1729904 - /qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java

Author: kwall
Date: Thu Feb 11 22:04:33 2016
New Revision: 1729904

URL: http://svn.apache.org/viewvc?rev=1729904&view=rev
Log:
QPID-7060: [Java Broker] Close session/connection protocol objects before disassociating virtualhost

Modified:
    qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java

Modified: qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java?rev=1729904&r1=1729903&r2=1729904&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java Thu Feb 11 22:04:33 2016
@@ -72,7 +72,7 @@ public class ServerConnection extends Co
     private Principal _authorizedPrincipal = null;
     private final long _connectionId;
     private final Object _reference = new Object();
-    private VirtualHost<?> _virtualHost;
+    private volatile VirtualHost<?> _virtualHost;
     private final AmqpPort<?> _port;
     private final AtomicLong _lastIoTime = new AtomicLong();
     private boolean _blocking;
@@ -418,15 +418,20 @@ public class ServerConnection extends Co
     @Override
     public void closed()
     {
-        performDeleteTasks();
-
-        if(_virtualHost != null)
+        try
         {
-            _virtualHost.deregisterConnection(_amqpConnection);
+            performDeleteTasks();
+            super.closed();
+        }
+        finally
+        {
+            if(_virtualHost != null)
+            {
+                _virtualHost.deregisterConnection(_amqpConnection);
+            }
+            getEventLogger().message(isConnectionLost() ? ConnectionMessages.DROPPED_CONNECTION() : ConnectionMessages.CLOSE());
         }
-        super.closed();
 
-        getEventLogger().message(isConnectionLost() ? ConnectionMessages.DROPPED_CONNECTION() : ConnectionMessages.CLOSE());
     }
 
     private void markAllSessionsClosed()



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org