summaryrefslogtreecommitdiff
path: root/qpid/java
diff options
context:
space:
mode:
authorKeith Wall <kwall@apache.org>2013-10-05 18:24:45 +0000
committerKeith Wall <kwall@apache.org>2013-10-05 18:24:45 +0000
commit9e1128eed479d269cd9700675a46dd979f26d40a (patch)
treeb403ad5a6711e824a6ccf80c3989067f22388b0b /qpid/java
parent921da63e059716d12b3bd94dfba8a3e3e6fe3075 (diff)
downloadqpid-python-9e1128eed479d269cd9700675a46dd979f26d40a.tar.gz
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
Diffstat (limited to 'qpid/java')
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ExchangeAdapter.java10
1 files changed, 5 insertions, 5 deletions
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<String, Object> 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))
{