summaryrefslogtreecommitdiff
path: root/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnectionDelegate.java
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2015-03-01 21:33:36 +0000
committerRobert Godfrey <rgodfrey@apache.org>2015-03-01 21:33:36 +0000
commitf56230eaa511dbfa02759b1b1e4e85769cd80aae (patch)
tree8cc07bd88ba6cd33991b3467c04380934dd839d1 /qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnectionDelegate.java
parent7dd86708f3542c03118ded5b8db74328cef71c84 (diff)
downloadqpid-python-f56230eaa511dbfa02759b1b1e4e85769cd80aae.tar.gz
QPID-6424 : Implement Connection.Redirect in 0-8/9/9-1
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1663170 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnectionDelegate.java')
-rw-r--r--qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnectionDelegate.java14
1 files changed, 12 insertions, 2 deletions
diff --git a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnectionDelegate.java b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnectionDelegate.java
index 26d659fc34..6e2a6cac7d 100644
--- a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnectionDelegate.java
+++ b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnectionDelegate.java
@@ -184,7 +184,8 @@ public class ServerConnectionDelegate extends ServerDelegate
vhostName = "";
}
- vhost = ((AmqpPort)sconn.getPort()).getVirtualHost(vhostName);
+ AmqpPort port = (AmqpPort) sconn.getPort();
+ vhost = port.getVirtualHost(vhostName);
@@ -193,7 +194,16 @@ public class ServerConnectionDelegate extends ServerDelegate
if (vhost.getState() != State.ACTIVE)
{
sconn.setState(Connection.State.CLOSING);
- sconn.invoke(new ConnectionClose(ConnectionCloseCode.CONNECTION_FORCED, "Virtual host '"+vhostName+"' is not active"));
+ final String redirectHost = vhost.getRedirectHost(port);
+ if(redirectHost == null)
+ {
+ sconn.invoke(new ConnectionClose(ConnectionCloseCode.CONNECTION_FORCED,
+ "Virtual host '" + vhostName + "' is not active"));
+ }
+ else
+ {
+ sconn.invoke(new ConnectionRedirect(redirectHost, new ArrayList<Object>()));
+ }
return;
}