You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ro...@apache.org on 2013/04/27 16:15:58 UTC
svn commit: r1476583 -
/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java
Author: robbie
Date: Sat Apr 27 14:15:58 2013
New Revision: 1476583
URL: http://svn.apache.org/r1476583
Log:
QPID-4782: use iterator.remove() to update the map and avoid the CME exposed in r1476219
Modified:
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java
Modified: qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java?rev=1476583&r1=1476582&r2=1476583&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java (original)
+++ qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java Sat Apr 27 14:15:58 2013
@@ -26,6 +26,7 @@ import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -64,14 +65,19 @@ final class ConnectionAdapter extends Ab
synchronized (_sessionAdapters)
{
- for(AMQSessionModel session : _sessionAdapters.keySet())
+ Iterator<AMQSessionModel> iterator = _sessionAdapters.keySet().iterator();
+ while(iterator.hasNext())
{
+ AMQSessionModel session = iterator.next();
if(!actualSessions.contains(session))
{
- SessionAdapter adapter = _sessionAdapters.remove(session);
+ SessionAdapter adapter = _sessionAdapters.get(session);
+ iterator.remove();
+
childRemoved(adapter); // Trigger corresponding ConfigurationChangeListener childRemoved() callback.
}
}
+
for(AMQSessionModel session : actualSessions)
{
if(!_sessionAdapters.containsKey(session))
@@ -81,6 +87,7 @@ final class ConnectionAdapter extends Ab
childAdded(adapter); // Trigger corresponding ConfigurationChangeListener childAdded() callback.
}
}
+
return new ArrayList<Session>(_sessionAdapters.values());
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org