From 4eddea8954ba9342ab2bc35e495baa673a6015db Mon Sep 17 00:00:00 2001 From: Robert Godfrey Date: Fri, 25 Apr 2014 00:01:33 +0000 Subject: QPID-5578 : Ensure correct error code is returned when a queue is declared with an unknown alternate exchange git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1589912 13f79535-47bb-0310-9956-ffa450edef68 --- .../qpid/server/exchange/AbstractExchange.java | 3 +- .../qpid/server/exchange/DirectExchange.java | 3 +- .../qpid/server/exchange/DirectExchangeType.java | 3 +- .../qpid/server/exchange/FanoutExchange.java | 3 +- .../qpid/server/exchange/FanoutExchangeType.java | 2 - .../qpid/server/exchange/HeadersExchange.java | 3 +- .../qpid/server/exchange/HeadersExchangeType.java | 2 - .../apache/qpid/server/exchange/TopicExchange.java | 5 +- .../qpid/server/exchange/TopicExchangeType.java | 2 - .../qpid/server/model/AttributeValueConverter.java | 4 +- .../model/UnknownConfiguredObjectException.java | 59 ++++++++++++++++++++++ .../apache/qpid/server/plugin/ExchangeType.java | 3 +- .../server/virtualhost/AbstractVirtualHost.java | 37 ++------------ .../virtualhost/UnknownExchangeException.java | 37 -------------- .../qpid/server/virtualhost/VirtualHostImpl.java | 2 +- .../qpid/server/exchange/FanoutExchangeTest.java | 3 +- ...SimpleLDAPAuthenticationManagerFactoryTest.java | 6 ++- .../protocol/v0_10/ServerSessionDelegate.java | 6 +-- .../v0_8/handler/ExchangeDeclareHandler.java | 14 ++--- .../java/org/apache/qpid/client/AMQSession.java | 57 +++++++++++---------- .../destination/AddressBasedDestinationTest.java | 19 ++++++- 21 files changed, 138 insertions(+), 135 deletions(-) create mode 100644 qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/UnknownConfiguredObjectException.java delete mode 100644 qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/UnknownExchangeException.java (limited to 'qpid/java') diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java index e42c3db0b1..5bf1c112cb 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java @@ -66,7 +66,6 @@ import org.apache.qpid.server.util.StateChangeListener; import org.apache.qpid.server.virtualhost.ExchangeIsAlternateException; import org.apache.qpid.server.virtualhost.RequiredExchangeException; import org.apache.qpid.server.virtualhost.ReservedExchangeNameException; -import org.apache.qpid.server.virtualhost.UnknownExchangeException; import org.apache.qpid.server.virtualhost.VirtualHostImpl; public abstract class AbstractExchange> @@ -107,7 +106,7 @@ public abstract class AbstractExchange> private StateChangeListener _bindingListener; - public AbstractExchange(Map attributes, VirtualHostImpl vhost) throws UnknownExchangeException + public AbstractExchange(Map attributes, VirtualHostImpl vhost) { super(parentsMap(vhost), attributes, vhost.getTaskExecutor()); _virtualHost = vhost; diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/DirectExchange.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/DirectExchange.java index 7e408bd1c2..bcec720cea 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/DirectExchange.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/DirectExchange.java @@ -43,7 +43,6 @@ import org.apache.qpid.server.model.ManagedObject; import org.apache.qpid.server.plugin.ExchangeType; import org.apache.qpid.server.queue.AMQQueue; import org.apache.qpid.server.queue.BaseQueue; -import org.apache.qpid.server.virtualhost.UnknownExchangeException; import org.apache.qpid.server.virtualhost.VirtualHostImpl; @ManagedObject( category = false, type = "direct" ) @@ -138,7 +137,7 @@ public class DirectExchange extends AbstractExchange public static final ExchangeType TYPE = new DirectExchangeType(); - public DirectExchange(final Map attributes, final VirtualHostImpl vhost) throws UnknownExchangeException + public DirectExchange(final Map attributes, final VirtualHostImpl vhost) { super(attributes, vhost); } diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/DirectExchangeType.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/DirectExchangeType.java index 887a5ec28e..547261f5aa 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/DirectExchangeType.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/DirectExchangeType.java @@ -24,7 +24,6 @@ import java.util.Map; import org.apache.qpid.exchange.ExchangeDefaults; import org.apache.qpid.server.plugin.ExchangeType; -import org.apache.qpid.server.virtualhost.UnknownExchangeException; import org.apache.qpid.server.virtualhost.VirtualHostImpl; public class DirectExchangeType implements ExchangeType @@ -37,7 +36,7 @@ public class DirectExchangeType implements ExchangeType @Override public DirectExchange newInstance(final VirtualHostImpl virtualHost, - final Map attributes) throws UnknownExchangeException + final Map attributes) { return new DirectExchange(attributes, virtualHost); } diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java index fd6eb8e410..b9461df0be 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java @@ -40,7 +40,6 @@ import org.apache.qpid.server.model.ManagedObject; import org.apache.qpid.server.plugin.ExchangeType; import org.apache.qpid.server.queue.AMQQueue; import org.apache.qpid.server.queue.BaseQueue; -import org.apache.qpid.server.virtualhost.UnknownExchangeException; import org.apache.qpid.server.virtualhost.VirtualHostImpl; @ManagedObject( category = false, type = "fanout" ) @@ -68,7 +67,7 @@ public class FanoutExchange extends AbstractExchange public static final ExchangeType TYPE = new FanoutExchangeType(); - public FanoutExchange(final Map attributes, final VirtualHostImpl vhost) throws UnknownExchangeException + public FanoutExchange(final Map attributes, final VirtualHostImpl vhost) { super(attributes, vhost); } diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/FanoutExchangeType.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/FanoutExchangeType.java index d513c25e9f..af64c74473 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/FanoutExchangeType.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/FanoutExchangeType.java @@ -24,7 +24,6 @@ import java.util.Map; import org.apache.qpid.exchange.ExchangeDefaults; import org.apache.qpid.server.plugin.ExchangeType; -import org.apache.qpid.server.virtualhost.UnknownExchangeException; import org.apache.qpid.server.virtualhost.VirtualHostImpl; public class FanoutExchangeType implements ExchangeType @@ -37,7 +36,6 @@ public class FanoutExchangeType implements ExchangeType @Override public FanoutExchange newInstance(final VirtualHostImpl virtualHost, final Map attributes) - throws UnknownExchangeException { return new FanoutExchange(attributes, virtualHost); } diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java index 45c484690e..e2146b3111 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java @@ -38,7 +38,6 @@ import org.apache.qpid.server.model.ManagedObject; import org.apache.qpid.server.plugin.ExchangeType; import org.apache.qpid.server.queue.AMQQueue; import org.apache.qpid.server.queue.BaseQueue; -import org.apache.qpid.server.virtualhost.UnknownExchangeException; import org.apache.qpid.server.virtualhost.VirtualHostImpl; /** @@ -83,7 +82,7 @@ public class HeadersExchange extends AbstractExchange public static final ExchangeType TYPE = new HeadersExchangeType(); - public HeadersExchange(final Map attributes, final VirtualHostImpl vhost) throws UnknownExchangeException + public HeadersExchange(final Map attributes, final VirtualHostImpl vhost) { super(attributes, vhost); } diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/HeadersExchangeType.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/HeadersExchangeType.java index b401132ade..e58628ce39 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/HeadersExchangeType.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/HeadersExchangeType.java @@ -24,7 +24,6 @@ import java.util.Map; import org.apache.qpid.exchange.ExchangeDefaults; import org.apache.qpid.server.plugin.ExchangeType; -import org.apache.qpid.server.virtualhost.UnknownExchangeException; import org.apache.qpid.server.virtualhost.VirtualHostImpl; public class HeadersExchangeType implements ExchangeType @@ -37,7 +36,6 @@ public class HeadersExchangeType implements ExchangeType @Override public HeadersExchange newInstance(final VirtualHostImpl virtualHost, final Map attributes) - throws UnknownExchangeException { return new HeadersExchange(attributes, virtualHost); } diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java index 0c0311903b..6506bfc0a6 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java @@ -27,7 +27,9 @@ import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; + import org.apache.log4j.Logger; + import org.apache.qpid.server.binding.BindingImpl; import org.apache.qpid.server.exchange.topic.TopicExchangeResult; import org.apache.qpid.server.exchange.topic.TopicMatcherResult; @@ -43,7 +45,6 @@ import org.apache.qpid.server.plugin.ExchangeType; import org.apache.qpid.server.queue.AMQQueue; import org.apache.qpid.server.queue.BaseQueue; import org.apache.qpid.server.util.ConnectionScopedRuntimeException; -import org.apache.qpid.server.virtualhost.UnknownExchangeException; import org.apache.qpid.server.virtualhost.VirtualHostImpl; @ManagedObject( category = false, type = "topic" ) @@ -61,7 +62,7 @@ public class TopicExchange extends AbstractExchange private final Map> _bindings = new HashMap>(); - public TopicExchange(final Map attributes, final VirtualHostImpl vhost) throws UnknownExchangeException + public TopicExchange(final Map attributes, final VirtualHostImpl vhost) { super(attributes, vhost); } diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/TopicExchangeType.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/TopicExchangeType.java index a7de341430..8bf0435b02 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/TopicExchangeType.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/TopicExchangeType.java @@ -24,7 +24,6 @@ import java.util.Map; import org.apache.qpid.exchange.ExchangeDefaults; import org.apache.qpid.server.plugin.ExchangeType; -import org.apache.qpid.server.virtualhost.UnknownExchangeException; import org.apache.qpid.server.virtualhost.VirtualHostImpl; public class TopicExchangeType implements ExchangeType @@ -37,7 +36,6 @@ public class TopicExchangeType implements ExchangeType @Override public TopicExchange newInstance(final VirtualHostImpl virtualHost, final Map attributes) - throws UnknownExchangeException { return new TopicExchange(attributes, virtualHost); } diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AttributeValueConverter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AttributeValueConverter.java index da0c93c5dd..a169aed0fe 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AttributeValueConverter.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AttributeValueConverter.java @@ -690,7 +690,7 @@ abstract class AttributeValueConverter return candidate; } } - throw new IllegalArgumentException("Cannot find a " + _klazz.getName() + " with id " + value); + throw new UnknownConfiguredObjectException(_klazz, (UUID)value); } else if(value instanceof String) { @@ -710,7 +710,7 @@ abstract class AttributeValueConverter } catch (IllegalArgumentException e) { - throw new IllegalArgumentException("Cannot find a " + _klazz.getSimpleName() + " with name '" + valueStr + "'"); + throw new UnknownConfiguredObjectException(_klazz, valueStr); } } else diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/UnknownConfiguredObjectException.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/UnknownConfiguredObjectException.java new file mode 100644 index 0000000000..f35a68a49c --- /dev/null +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/UnknownConfiguredObjectException.java @@ -0,0 +1,59 @@ +/* + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ +package org.apache.qpid.server.model; + +import java.util.UUID; + +public class UnknownConfiguredObjectException extends IllegalArgumentException +{ + private final Class _category; + private String _name; + private UUID _id; + + public UnknownConfiguredObjectException(final Class category, final String name) + { + super("Could not find object of category " + category.getSimpleName() + " with name '" + name + "'"); + _category = category; + _name = name; + } + + public UnknownConfiguredObjectException(final Class category, final UUID id) + { + super("Could not find object of category " + category.getSimpleName() + " with id " + id); + _category = category; + _id = id; + } + + public Class getCategory() + { + return _category; + } + + public String getName() + { + return _name; + } + + public UUID getId() + { + return _id; + } +} diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/plugin/ExchangeType.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/plugin/ExchangeType.java index 841dc3aacb..f82aaff42b 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/plugin/ExchangeType.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/plugin/ExchangeType.java @@ -23,14 +23,13 @@ package org.apache.qpid.server.plugin; import java.util.Map; import org.apache.qpid.server.exchange.ExchangeImpl; -import org.apache.qpid.server.virtualhost.UnknownExchangeException; import org.apache.qpid.server.virtualhost.VirtualHostImpl; public interface ExchangeType> extends Pluggable { public String getType(); - public T newInstance(final VirtualHostImpl virtualHost, Map attributes) throws UnknownExchangeException; + public T newInstance(final VirtualHostImpl virtualHost, Map attributes); public String getDefaultExchangeName(); } diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java index 18f728fdf6..35d7bd4793 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java @@ -58,24 +58,7 @@ import org.apache.qpid.server.message.MessageInstance; import org.apache.qpid.server.message.MessageNode; import org.apache.qpid.server.message.MessageSource; import org.apache.qpid.server.message.ServerMessage; -import org.apache.qpid.server.model.AbstractConfiguredObject; -import org.apache.qpid.server.model.Broker; -import org.apache.qpid.server.model.BrokerModel; -import org.apache.qpid.server.model.ConfiguredObject; -import org.apache.qpid.server.model.Connection; -import org.apache.qpid.server.model.Exchange; -import org.apache.qpid.server.model.IntegrityViolationException; -import org.apache.qpid.server.model.LifetimePolicy; -import org.apache.qpid.server.model.ManagedAttributeField; -import org.apache.qpid.server.model.Port; -import org.apache.qpid.server.model.Protocol; -import org.apache.qpid.server.model.Queue; -import org.apache.qpid.server.model.State; -import org.apache.qpid.server.model.SystemContext; -import org.apache.qpid.server.model.UUIDGenerator; -import org.apache.qpid.server.model.VirtualHost; -import org.apache.qpid.server.model.VirtualHostAlias; -import org.apache.qpid.server.model.VirtualHostNode; +import org.apache.qpid.server.model.*; import org.apache.qpid.server.model.adapter.ConnectionAdapter; import org.apache.qpid.server.model.adapter.VirtualHostAliasAdapter; import org.apache.qpid.server.plugin.MessageStoreFactory; @@ -797,10 +780,6 @@ public abstract class AbstractVirtualHost> exte { throw new UnsupportedOperationException("'" + name + "' is a reserved exchange name"); } - catch(UnknownExchangeException e) - { - throw new IllegalArgumentException("Alternate Exchange with name '" + e.getExchangeName() + "' does not exist"); - } catch(AMQUnknownExchangeType e) { throw new IllegalArgumentException(e); @@ -811,7 +790,7 @@ public abstract class AbstractVirtualHost> exte @Override public ExchangeImpl createExchange(Map attributes) throws ExchangeExistsException, ReservedExchangeNameException, - UnknownExchangeException, AMQUnknownExchangeType + AMQUnknownExchangeType { checkVHostStateIsActive(); ExchangeImpl child = addExchange(attributes); @@ -822,7 +801,7 @@ public abstract class AbstractVirtualHost> exte private ExchangeImpl addExchange(Map attributes) throws ExchangeExistsException, ReservedExchangeNameException, - UnknownExchangeException, AMQUnknownExchangeType + AMQUnknownExchangeType { try { @@ -1484,15 +1463,7 @@ public abstract class AbstractVirtualHost> exte // We're ok if the exchange already exists dlExchange = e.getExistingExchange(); } - catch (ReservedExchangeNameException e) - { - throw new ConnectionScopedRuntimeException("Attempt to create an alternate exchange for a queue failed",e); - } - catch (AMQUnknownExchangeType e) - { - throw new ConnectionScopedRuntimeException("Attempt to create an alternate exchange for a queue failed",e); - } - catch (UnknownExchangeException e) + catch (ReservedExchangeNameException | AMQUnknownExchangeType | UnknownConfiguredObjectException e) { throw new ConnectionScopedRuntimeException("Attempt to create an alternate exchange for a queue failed",e); } diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/UnknownExchangeException.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/UnknownExchangeException.java deleted file mode 100644 index c34cf51955..0000000000 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/UnknownExchangeException.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * - */ -package org.apache.qpid.server.virtualhost; - -public class UnknownExchangeException extends RuntimeException -{ - private final String _exchangeName; - - public UnknownExchangeException(String exchangeName) - { - super(exchangeName); - _exchangeName = exchangeName; - } - - public String getExchangeName() - { - return _exchangeName; - } -} diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java index 1408034e97..a29534cff7 100755 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java @@ -67,7 +67,7 @@ public interface VirtualHostImpl< X extends VirtualHostImpl, Q extends AM E createExchange(Map attributes) throws ExchangeExistsException, ReservedExchangeNameException, - UnknownExchangeException, AMQUnknownExchangeType; + AMQUnknownExchangeType; void removeExchange(E exchange, boolean force) throws ExchangeIsAlternateException, RequiredExchangeException; diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/exchange/FanoutExchangeTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/exchange/FanoutExchangeTest.java index 77f594f7a1..8ccd7af799 100644 --- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/exchange/FanoutExchangeTest.java +++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/exchange/FanoutExchangeTest.java @@ -48,7 +48,6 @@ import org.apache.qpid.server.model.Queue; import org.apache.qpid.server.queue.AMQQueue; import org.apache.qpid.server.queue.BaseQueue; import org.apache.qpid.server.security.SecurityManager; -import org.apache.qpid.server.virtualhost.UnknownExchangeException; import org.apache.qpid.server.virtualhost.VirtualHostImpl; public class FanoutExchangeTest extends TestCase @@ -58,7 +57,7 @@ public class FanoutExchangeTest extends TestCase private TaskExecutor _taskExecutor; private ConfiguredObjectFactoryImpl _objectFactory; - public void setUp() throws UnknownExchangeException + public void setUp() { Map attributes = new HashMap(); attributes.put(Exchange.ID, UUID.randomUUID()); diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/manager/SimpleLDAPAuthenticationManagerFactoryTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/manager/SimpleLDAPAuthenticationManagerFactoryTest.java index 9aed584c41..6fc28ac136 100644 --- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/manager/SimpleLDAPAuthenticationManagerFactoryTest.java +++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/manager/SimpleLDAPAuthenticationManagerFactoryTest.java @@ -35,6 +35,7 @@ import org.apache.qpid.server.model.AuthenticationProvider; import org.apache.qpid.server.model.Broker; import org.apache.qpid.server.model.SystemContext; import org.apache.qpid.server.model.TrustStore; +import org.apache.qpid.server.model.UnknownConfiguredObjectException; import org.apache.qpid.server.util.BrokerTestHelper; public class SimpleLDAPAuthenticationManagerFactoryTest extends TestCase @@ -107,9 +108,10 @@ public class SimpleLDAPAuthenticationManagerFactoryTest extends TestCase _factory.create(null, _configuration, _broker); fail("Exception not thrown"); } - catch(IllegalArgumentException e) + catch(UnknownConfiguredObjectException e) { - assertEquals("Cannot find a TrustStore with name 'notfound'", e.getMessage()); + assertEquals(e.getCategory(), TrustStore.class); + assertEquals(e.getName(), "notfound"); } } diff --git a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSessionDelegate.java b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSessionDelegate.java index 200519a285..ff57e6a33c 100644 --- a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSessionDelegate.java +++ b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSessionDelegate.java @@ -48,6 +48,7 @@ import org.apache.qpid.server.message.MessageSource; import org.apache.qpid.server.model.ExclusivityPolicy; import org.apache.qpid.server.model.LifetimePolicy; import org.apache.qpid.server.model.Queue; +import org.apache.qpid.server.model.UnknownConfiguredObjectException; import org.apache.qpid.server.plugin.ExchangeType; import org.apache.qpid.server.queue.AMQQueue; import org.apache.qpid.server.queue.QueueArgumentsConverter; @@ -72,7 +73,6 @@ import org.apache.qpid.server.virtualhost.ExchangeIsAlternateException; import org.apache.qpid.server.virtualhost.QueueExistsException; import org.apache.qpid.server.virtualhost.RequiredExchangeException; import org.apache.qpid.server.virtualhost.ReservedExchangeNameException; -import org.apache.qpid.server.virtualhost.UnknownExchangeException; import org.apache.qpid.server.virtualhost.VirtualHostImpl; import org.apache.qpid.transport.*; @@ -750,10 +750,10 @@ public class ServerSessionDelegate extends SessionDelegate exception(session, method, ExecutionErrorCode.NOT_ALLOWED, "Attempt to declare exchange: " + exchangeName + " which begins with reserved name or prefix."); } - catch(UnknownExchangeException e) + catch(UnknownConfiguredObjectException e) { exception(session, method, ExecutionErrorCode.NOT_FOUND, - "Unknown alternate exchange " + e.getExchangeName()); + "Unknown alternate exchange " + e.getName()); } catch(AMQUnknownExchangeType e) { diff --git a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/ExchangeDeclareHandler.java b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/ExchangeDeclareHandler.java index 3e1c2ad987..efd50e5595 100644 --- a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/ExchangeDeclareHandler.java +++ b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/ExchangeDeclareHandler.java @@ -20,32 +20,32 @@ */ package org.apache.qpid.server.protocol.v0_8.handler; +import java.security.AccessControlException; +import java.util.HashMap; +import java.util.Map; + import org.apache.log4j.Logger; import org.apache.qpid.AMQConnectionException; import org.apache.qpid.AMQException; -import org.apache.qpid.server.exchange.AMQUnknownExchangeType; import org.apache.qpid.framing.AMQMethodBody; import org.apache.qpid.framing.AMQShortString; import org.apache.qpid.framing.ExchangeDeclareBody; import org.apache.qpid.framing.MethodRegistry; import org.apache.qpid.protocol.AMQConstant; +import org.apache.qpid.server.exchange.AMQUnknownExchangeType; import org.apache.qpid.server.exchange.DirectExchange; import org.apache.qpid.server.exchange.ExchangeImpl; import org.apache.qpid.server.model.LifetimePolicy; +import org.apache.qpid.server.model.UnknownConfiguredObjectException; import org.apache.qpid.server.protocol.v0_8.AMQChannel; import org.apache.qpid.server.protocol.v0_8.AMQProtocolSession; import org.apache.qpid.server.protocol.v0_8.state.AMQStateManager; import org.apache.qpid.server.protocol.v0_8.state.StateAwareMethodListener; import org.apache.qpid.server.virtualhost.ExchangeExistsException; import org.apache.qpid.server.virtualhost.ReservedExchangeNameException; -import org.apache.qpid.server.virtualhost.UnknownExchangeException; import org.apache.qpid.server.virtualhost.VirtualHostImpl; -import java.security.AccessControlException; -import java.util.HashMap; -import java.util.Map; - public class ExchangeDeclareHandler implements StateAwareMethodListener { private static final Logger _logger = Logger.getLogger(ExchangeDeclareHandler.class); @@ -155,7 +155,7 @@ public class ExchangeDeclareHandler implements StateAwareMethodListener *
CRC Card
Responsibilities Collaborations @@ -3491,15 +3491,18 @@ public abstract class AMQSession