summaryrefslogtreecommitdiff
path: root/qpid/java/broker/src
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/java/broker/src')
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java15
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java11
2 files changed, 14 insertions, 12 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java
index 6e601ea6aa..e2efb05205 100644
--- a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java
+++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java
@@ -214,7 +214,6 @@ final class VirtualHostAdapter extends AbstractAdapter implements VirtualHost, E
return createExchange(name, state, durable, lifetime, ttl, type, attributes);
}
-
public Exchange createExchange(final String name,
final State initialState,
final boolean durable,
@@ -224,6 +223,8 @@ final class VirtualHostAdapter extends AbstractAdapter implements VirtualHost, E
final Map<String, Object> attributes)
throws AccessControlException, IllegalArgumentException
{
+ checkVHostStateIsActive();
+
try
{
org.apache.qpid.server.exchange.Exchange exchange =
@@ -285,6 +286,8 @@ final class VirtualHostAdapter extends AbstractAdapter implements VirtualHost, E
final Map<String, Object> attributes)
throws AccessControlException, IllegalArgumentException
{
+ checkVHostStateIsActive();
+
String owner = null;
if(exclusive)
{
@@ -797,6 +800,16 @@ final class VirtualHostAdapter extends AbstractAdapter implements VirtualHost, E
return AVAILABLE_ATTRIBUTES;
}
+ private void checkVHostStateIsActive()
+ {
+ if (!org.apache.qpid.server.virtualhost.State.ACTIVE.equals(_virtualHost.getState()))
+ {
+ throw new IllegalStateException("The virtual hosts state of " + _virtualHost.getState()
+ + " does not permit this operation.");
+ }
+ }
+
+
private static class VirtualHostStatisticsAdapter extends StatisticsAdapter
{
private final org.apache.qpid.server.virtualhost.VirtualHost _vhost;
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java
index 8945431e99..9ddb01d34c 100644
--- a/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java
+++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java
@@ -753,15 +753,6 @@ public class VirtualHostImpl implements VirtualHost, IConnectionRegistry.Registr
try
{
initialiseHouseKeeping(_vhostConfig.getHousekeepingCheckPeriod());
-//TODO: implement state changing for the VirtualHost MBean instead of registering and unregistering
-// try
-// {
-// _brokerMBean.register();
-// }
-// catch (JMException e)
-// {
-// throw new RuntimeException("Failed to register virtual host mbean for virtual host " + getName(), e);
-// }
finalState = State.ACTIVE;
}
finally
@@ -787,8 +778,6 @@ public class VirtualHostImpl implements VirtualHost, IConnectionRegistry.Registr
*/
_connectionRegistry.close(IConnectionRegistry.VHOST_PASSIVATE_REPLY_TEXT);
-//TODO: implement state changing for the VirtualHost MBean instead of registering and unregistering
-// _brokerMBean.unregister();
removeHouseKeepingTasks();
_queueRegistry.stopAllAndUnregisterMBeans();