summaryrefslogtreecommitdiff
path: root/qpid/java/broker/src
diff options
context:
space:
mode:
authorRobert Gemmell <robbie@apache.org>2011-03-27 21:32:02 +0000
committerRobert Gemmell <robbie@apache.org>2011-03-27 21:32:02 +0000
commit2c0724ea3c4fe95276320a071469eaba870fdf51 (patch)
tree8eaf8d3a3967822b0e03b81b738e7ef8bcce3093 /qpid/java/broker/src
parente135de42dc525a8da132ba20b32d0ddc31e44946 (diff)
downloadqpid-python-2c0724ea3c4fe95276320a071469eaba870fdf51.tar.gz
QPID-3162: move unregistration of ServerConnections from the ConnectionRegistry into the setState() method to ensure it occurs in all cases. Also move registration into setState().
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1086041 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/broker/src')
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerConnection.java14
1 files changed, 11 insertions, 3 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerConnection.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerConnection.java
index 75bd50e3a2..54cd709af3 100644
--- a/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerConnection.java
+++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerConnection.java
@@ -88,8 +88,18 @@ public class ServerConnection extends Connection implements AMQConnectionModel,
_onOpenTask.run();
}
_actor.message(ConnectionMessages.OPEN(getClientId(), "0-10", true, true));
+
+ getVirtualHost().getConnectionRegistry().registerConnection(this);
}
-
+
+ if (state == State.CLOSE_RCVD || state == State.CLOSED || state == State.CLOSING)
+ {
+ if(_virtualHost != null)
+ {
+ _virtualHost.getConnectionRegistry().deregisterConnection(this);
+ }
+ }
+
if (state == State.CLOSED)
{
logClosed();
@@ -126,7 +136,6 @@ public class ServerConnection extends Connection implements AMQConnectionModel,
public void setVirtualHost(VirtualHost virtualHost)
{
_virtualHost = virtualHost;
- _virtualHost.getConnectionRegistry().registerConnection(this);
initialiseStatistics();
}
@@ -253,7 +262,6 @@ public class ServerConnection extends Connection implements AMQConnectionModel,
// Ignore
}
close(replyCode, message);
- getVirtualHost().getConnectionRegistry().deregisterConnection(this);
}
@Override