diff options
| author | Keith Wall <kwall@apache.org> | 2013-10-05 18:24:45 +0000 |
|---|---|---|
| committer | Keith Wall <kwall@apache.org> | 2013-10-05 18:24:45 +0000 |
| commit | 9e1128eed479d269cd9700675a46dd979f26d40a (patch) | |
| tree | b403ad5a6711e824a6ccf80c3989067f22388b0b /qpid/java | |
| parent | 921da63e059716d12b3bd94dfba8a3e3e6fe3075 (diff) | |
| download | qpid-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.java | 10 |
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)) { |
