diff options
| author | Robert Godfrey <rgodfrey@apache.org> | 2014-10-21 11:34:00 +0000 |
|---|---|---|
| committer | Robert Godfrey <rgodfrey@apache.org> | 2014-10-21 11:34:00 +0000 |
| commit | 814767e56ff8cdafa4232d31a61e7be526eae786 (patch) | |
| tree | 62dc69120da9881dd0e0f66700c66390d099286c /qpid/java | |
| parent | 81b45698f40ea592c27f57c6d183dbbb501fd1bf (diff) | |
| download | qpid-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')
| -rw-r--r-- | qpid/java/common/src/main/java/org/apache/qpid/transport/Connection.java | 8 |
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(); } |
