diff options
| author | Keith Wall <kwall@apache.org> | 2012-07-06 14:01:27 +0000 |
|---|---|---|
| committer | Keith Wall <kwall@apache.org> | 2012-07-06 14:01:27 +0000 |
| commit | cfd6a6efb9a9747ee4baf78d756988b571daeebb (patch) | |
| tree | 39c47475227b8d0688db2730108e5f99a3d5147d /qpid/java/bdbstore | |
| parent | 5ec191a43e6fb68d483f866667e86cd6196aea46 (diff) | |
| download | qpid-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.java | 44 |
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); + } } |
