From 9e1128eed479d269cd9700675a46dd979f26d40a Mon Sep 17 00:00:00 2001 From: Keith Wall Date: Sat, 5 Oct 2013 18:24:45 +0000 Subject: QPID-5205: Change ExchangeAdapter to return a model exchange object for alternate exchange This avoids the possibility of a StackOverflowException when viewing an exchange were a alternate has been set at declare time (0-10 only). git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1529492 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/qpid/server/model/adapter/ExchangeAdapter.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'qpid/java') diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ExchangeAdapter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ExchangeAdapter.java index 8efce39ea2..0963f01522 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ExchangeAdapter.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ExchangeAdapter.java @@ -32,6 +32,7 @@ import org.apache.qpid.AMQInternalException; import org.apache.qpid.AMQSecurityException; import org.apache.qpid.server.binding.Binding; import org.apache.qpid.server.model.ConfiguredObject; +import org.apache.qpid.server.model.ConfiguredObjectFinder; import org.apache.qpid.server.model.Exchange; import org.apache.qpid.server.model.LifetimePolicy; import org.apache.qpid.server.model.Publisher; @@ -41,7 +42,6 @@ import org.apache.qpid.server.model.Statistics; import org.apache.qpid.server.queue.AMQQueue; import org.apache.qpid.server.util.MapValueConverter; import org.apache.qpid.server.virtualhost.RequiredExchangeException; -import org.apache.qpid.server.virtualhost.VirtualHost; final class ExchangeAdapter extends AbstractAdapter implements Exchange, org.apache.qpid.server.exchange.Exchange.BindingListener { @@ -126,9 +126,6 @@ final class ExchangeAdapter extends AbstractAdapter implements Exchange, org.apa Map attributes) throws AccessControlException, IllegalStateException { - VirtualHost virtualHost = _vhost.getVirtualHost(); - - AMQQueue amqQueue = ((QueueAdapter)queue).getAMQQueue(); try @@ -350,7 +347,10 @@ final class ExchangeAdapter extends AbstractAdapter implements Exchange, org.apa } else if(ALTERNATE_EXCHANGE.equals(name)) { - return _exchange.getAlternateExchange(); + org.apache.qpid.server.exchange.Exchange alternateExchange = _exchange.getAlternateExchange(); + return alternateExchange == null ? null : + ConfiguredObjectFinder.findConfiguredObjectByName(_vhost.getExchanges(), + alternateExchange.getName()); } else if(TYPE.equals(name)) { -- cgit v1.2.1