summaryrefslogtreecommitdiff
path: root/java
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
commit646f6caf446e227e9d32ae04068cb1e058f69cca (patch)
treedf4b429d6ceafaa2036a2f771ca09b67b9fb2473 /java
parent2291ac84712fb221e507f59a9a27361a02ecf0eb (diff)
downloadqpid-python-646f6caf446e227e9d32ae04068cb1e058f69cca.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/qpid@1086041 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java')
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/transport/ServerConnection.java14
1 files changed, 11 insertions, 3 deletions
diff --git a/java/broker/src/main/java/org/apache/qpid/server/transport/ServerConnection.java b/java/broker/src/main/java/org/apache/qpid/server/transport/ServerConnection.java
index 75bd50e3a2..54cd709af3 100644
--- a/java/broker/src/main/java/org/apache/qpid/server/transport/ServerConnection.java
+++ b/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