summaryrefslogtreecommitdiff
path: root/qpid/java/bdbstore
diff options
context:
space:
mode:
authorKeith Wall <kwall@apache.org>2012-07-06 14:01:27 +0000
committerKeith Wall <kwall@apache.org>2012-07-06 14:01:27 +0000
commitcfd6a6efb9a9747ee4baf78d756988b571daeebb (patch)
tree39c47475227b8d0688db2730108e5f99a3d5147d /qpid/java/bdbstore
parent5ec191a43e6fb68d483f866667e86cd6196aea46 (diff)
downloadqpid-python-cfd6a6efb9a9747ee4baf78d756988b571daeebb.tar.gz
QPID-4093: [Java Broker] Prevent new queues and exchanges from being created on vhosts that are not active
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1358217 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/bdbstore')
-rw-r--r--qpid/java/bdbstore/jmx/src/test/java/org/apache/qpid/server/store/berkeleydb/HAClusterManagementTest.java44
1 files changed, 41 insertions, 3 deletions
diff --git a/qpid/java/bdbstore/jmx/src/test/java/org/apache/qpid/server/store/berkeleydb/HAClusterManagementTest.java b/qpid/java/bdbstore/jmx/src/test/java/org/apache/qpid/server/store/berkeleydb/HAClusterManagementTest.java
index 45038bf050..606983cdae 100644
--- a/qpid/java/bdbstore/jmx/src/test/java/org/apache/qpid/server/store/berkeleydb/HAClusterManagementTest.java
+++ b/qpid/java/bdbstore/jmx/src/test/java/org/apache/qpid/server/store/berkeleydb/HAClusterManagementTest.java
@@ -35,7 +35,9 @@ import javax.management.openmbean.TabularData;
import org.apache.log4j.Logger;
import org.apache.qpid.jms.ConnectionURL;
+import org.apache.qpid.management.common.mbeans.ManagedBroker;
import org.apache.qpid.server.store.berkeleydb.jmx.ManagedBDBHAMessageStore;
+import org.apache.qpid.server.virtualhost.ManagedVirtualHost;
import org.apache.qpid.test.utils.JMXTestUtils;
import org.apache.qpid.test.utils.QpidBrokerTestCase;
@@ -221,11 +223,47 @@ public class HAClusterManagementTest extends QpidBrokerTestCase
}
}
- private ManagedBDBHAMessageStore getStoreBeanForNodeAtBrokerPort(
- final int activeBrokerPortNumber) throws Exception
+ public void testVirtualHostOperationsDeniedForNonMasterNode() throws Exception
{
- _jmxUtils.open(activeBrokerPortNumber);
+ final Connection activeConnection = getConnection(_brokerFailoverUrl);
+ final int inactiveBrokerPortNumber = _clusterCreator.getPortNumberOfAnInactiveBroker(activeConnection);
+
+ ManagedBroker inactiveBroker = getManagedBrokerBeanForNodeAtBrokerPort(inactiveBrokerPortNumber);
+
+ try
+ {
+ inactiveBroker.createNewQueue(getTestQueueName(), null, true);
+ fail("Exception not thrown");
+ }
+ catch (Exception e)
+ {
+ String message = e.getMessage();
+ assertEquals(message, "The virtual hosts state of INITIALISING does not permit this operation.");
+ }
+
+ try
+ {
+ inactiveBroker.createNewExchange(getName(), "direct", true);
+ fail("Exception not thrown");
+ }
+ catch (Exception e)
+ {
+ String message = e.getMessage();
+ assertEquals(message, "The virtual hosts state of INITIALISING does not permit this operation.");
+ }
+ }
+
+ private ManagedBDBHAMessageStore getStoreBeanForNodeAtBrokerPort(final int brokerPortNumber) throws Exception
+ {
+ _jmxUtils.open(brokerPortNumber);
return _jmxUtils.getManagedObject(ManagedBDBHAMessageStore.class, MANAGED_OBJECT_QUERY);
}
+
+ private ManagedBroker getManagedBrokerBeanForNodeAtBrokerPort(final int brokerPortNumber) throws Exception
+ {
+ _jmxUtils.open(brokerPortNumber);
+
+ return _jmxUtils.getManagedBroker(VIRTUAL_HOST);
+ }
}