You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kw...@apache.org on 2013/10/05 20:24:45 UTC

svn commit: r1529492 - /qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ExchangeAdapter.java

Author: kwall
Date: Sat Oct  5 18:24:45 2013
New Revision: 1529492

URL: http://svn.apache.org/r1529492
Log:
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).

Modified:
    qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ExchangeAdapter.java

Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ExchangeAdapter.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ExchangeAdapter.java?rev=1529492&r1=1529491&r2=1529492&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ExchangeAdapter.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ExchangeAdapter.java Sat Oct  5 18:24:45 2013
@@ -32,6 +32,7 @@ import org.apache.qpid.AMQInternalExcept
 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.Stat
 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 Abst
                                                               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 Abst
         }
         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))
         {



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org