diff options
| author | Alex Rudyy <orudyy@apache.org> | 2013-05-22 11:41:53 +0000 |
|---|---|---|
| committer | Alex Rudyy <orudyy@apache.org> | 2013-05-22 11:41:53 +0000 |
| commit | a4c2ad8da3d30a1bde3e2053e3d3d08ac814aa2b (patch) | |
| tree | 5afe46880fb0197cb358a64b533f65493f661bdd /qpid/java/broker | |
| parent | c8e54a76117dba84f0456ec1a2bfac4428df440a (diff) | |
| download | qpid-python-a4c2ad8da3d30a1bde3e2053e3d3d08ac814aa2b.tar.gz | |
QPID-4876: Throw an exception when virtual host configuration is not found in virtual host file
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1485163 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/broker')
3 files changed, 22 insertions, 6 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/VirtualHostConfiguration.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/VirtualHostConfiguration.java index 26907ea255..aff84e5832 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/VirtualHostConfiguration.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/VirtualHostConfiguration.java @@ -68,12 +68,11 @@ public class VirtualHostConfiguration extends AbstractConfiguration { Configuration virtualHostConfig = XmlConfigurationUtilities.parseConfig(configurationFile); - // check if it is an old virtual host configuration file which has an element of the same name as virtual host + // check for the element with the same name as virtual host Configuration config = virtualHostConfig.subset("virtualhost." + XmlConfigurationUtilities.escapeTagName(name)); if (config.isEmpty()) { - // assume it is a new configuration which does not have an element of the same name as the virtual host - configuration = virtualHostConfig; + throw new IllegalConfigurationException("No configuration found for virtual host '" + name + "' in " + configurationFile.getAbsolutePath()); } else { diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/model/VirtualHostTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/model/VirtualHostTest.java index 4f60e7e253..478013f61f 100644 --- a/qpid/java/broker/src/test/java/org/apache/qpid/server/model/VirtualHostTest.java +++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/model/VirtualHostTest.java @@ -132,12 +132,14 @@ public class VirtualHostTest extends TestCase public void testReplicaState() { - File configPath = TestFileUtils.createTempFile(this, ".xml", - "<virtualhost><store><class>" + ReplicaMessageStore.class.getName() + "</class></store></virtualhost>"); + String hostName = getName(); + File configPath = TestFileUtils.createTempFile(this, ".xml", "<virtualhosts><virtualhost><" + hostName + + "><store><class>" + ReplicaMessageStore.class.getName() + "</class></store></" + hostName + + "></virtualhost></virtualhosts>"); try { Map<String, Object> attributes = new HashMap<String, Object>(); - attributes.put(VirtualHost.NAME, getName()); + attributes.put(VirtualHost.NAME, hostName); attributes.put(VirtualHost.CONFIG_PATH, configPath.getAbsolutePath()); VirtualHost host = createHost(attributes); diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/virtualhost/VirtualHostImplTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/virtualhost/VirtualHostImplTest.java index 4e58eae1d2..739efecd90 100644 --- a/qpid/java/broker/src/test/java/org/apache/qpid/server/virtualhost/VirtualHostImplTest.java +++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/virtualhost/VirtualHostImplTest.java @@ -179,6 +179,21 @@ public class VirtualHostImplTest extends QpidTestCase } } + public void testCreateVirtualHostWithoutConfigurationInConfigFile() throws Exception + { + File config = writeConfigFile(getName(), getName(), getName() +".direct", false, new String[0]); + String hostName = getName() + "-not-existing"; + try + { + createVirtualHost(hostName, config); + fail("virtualhost creation should have failed due to illegal configuration"); + } + catch (RuntimeException e) + { + assertEquals("No configuration found for virtual host '" + hostName + "' in " + config.getAbsolutePath(), e.getMessage()); + } + } + private void customBindingTestImpl(final String[] routingKeys) throws Exception { String exchangeName = getName() +".direct"; |
