Author: rgodfrey
Date: Fri Jul 24 15:49:26 2015
New Revision: 1692545

URL: http://svn.apache.org/r1692545
Log:
QPID-6525 : Consumers map is never cleared of closed consumers - also should 
not be a map

Modified:
    
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractSystemMessageSource.java

Modified: 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractSystemMessageSource.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractSystemMessageSource.java?rev=1692545&r1=1692544&r2=1692545&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractSystemMessageSource.java
 (original)
+++ 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractSystemMessageSource.java
 Fri Jul 24 15:49:26 2015
@@ -57,7 +57,7 @@ public abstract class AbstractSystemMess
     private final CopyOnWriteArrayList<ConsumerRegistrationListener<? super 
MessageSource>>
             _consumerRegistrationListeners =
             new CopyOnWriteArrayList<>();
-    private Map<String, Consumer> _consumers = new ConcurrentHashMap<>();
+    private List<Consumer> _consumers = new CopyOnWriteArrayList<>();
 
     public AbstractSystemMessageSource(
             String name, final VirtualHostImpl virtualHost)
@@ -97,7 +97,7 @@ public abstract class AbstractSystemMess
     {
         final Consumer consumer = new Consumer(consumerName, target);
         target.consumerAdded(consumer);
-        _consumers.put(consumerName, consumer);
+        _consumers.add(consumer);
         for (ConsumerRegistrationListener<? super MessageSource> listener : 
_consumerRegistrationListeners)
         {
             listener.consumerAdded(this, consumer);
@@ -108,7 +108,7 @@ public abstract class AbstractSystemMess
     @Override
     public Collection<Consumer> getConsumers()
     {
-        return new ArrayList<>(_consumers.values());
+        return new ArrayList<>(_consumers);
     }
 
     @Override
@@ -229,7 +229,7 @@ public abstract class AbstractSystemMess
         @Override
         public void close()
         {
-
+            _consumers.remove(this);
         }
 
         @Override



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to