summaryrefslogtreecommitdiff
path: root/qpid/java/common
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2014-10-21 11:34:00 +0000
committerRobert Godfrey <rgodfrey@apache.org>2014-10-21 11:34:00 +0000
commit814767e56ff8cdafa4232d31a61e7be526eae786 (patch)
tree62dc69120da9881dd0e0f66700c66390d099286c /qpid/java/common
parent81b45698f40ea592c27f57c6d183dbbb501fd1bf (diff)
downloadqpid-python-814767e56ff8cdafa4232d31a61e7be526eae786.tar.gz
QPID-6171 : make Connection.getChannels() return a data structure that can be safely iterated over
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1633344 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/common')
-rw-r--r--qpid/java/common/src/main/java/org/apache/qpid/transport/Connection.java8
1 files changed, 4 insertions, 4 deletions
diff --git a/qpid/java/common/src/main/java/org/apache/qpid/transport/Connection.java b/qpid/java/common/src/main/java/org/apache/qpid/transport/Connection.java
index 99fc02c959..b79a2c13fd 100644
--- a/qpid/java/common/src/main/java/org/apache/qpid/transport/Connection.java
+++ b/qpid/java/common/src/main/java/org/apache/qpid/transport/Connection.java
@@ -35,6 +35,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
+import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
import javax.security.sasl.SaslClient;
@@ -115,7 +116,7 @@ public class Connection extends ConnectionInvoker
private Sender<ProtocolEvent> sender;
final private Map<Binary,Session> sessions = new HashMap<Binary,Session>();
- final private Map<Integer,Session> channels = new HashMap<Integer,Session>();
+ final private Map<Integer,Session> channels = new ConcurrentHashMap<Integer,Session>();
private State state = NEW;
final private Object lock = new Object();
@@ -731,7 +732,7 @@ public class Connection extends ConnectionInvoker
protected Collection<Session> getChannels()
{
- return channels.values();
+ return new ArrayList<>(channels.values());
}
public boolean hasSessionWithName(final byte[] name)
@@ -741,8 +742,7 @@ public class Connection extends ConnectionInvoker
public void notifyFailoverRequired()
{
- List<Session> values = new ArrayList<Session>(channels.values());
- for (Session ssn : values)
+ for (Session ssn : getChannels())
{
ssn.notifyFailoverRequired();
}