From f68aa1d6d32588a691f8024c1dc3e6a4a4acc736 Mon Sep 17 00:00:00 2001 From: Michael Bayne Date: Tue, 17 Jul 2007 21:06:09 +0000 Subject: [PATCH] Iterate over a snapshot of the values so that we avoid concurrent modification. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4769 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- src/java/com/threerings/presents/peer/server/PeerManager.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/java/com/threerings/presents/peer/server/PeerManager.java b/src/java/com/threerings/presents/peer/server/PeerManager.java index 598b985ad..a21b5590d 100644 --- a/src/java/com/threerings/presents/peer/server/PeerManager.java +++ b/src/java/com/threerings/presents/peer/server/PeerManager.java @@ -525,7 +525,7 @@ public class PeerManager public void clientUnsubscribedFromNode (int cloid) { _suboids.remove(cloid); - for (LockHandler handler : _locks.values()) { + for (LockHandler handler : _locks.values().toArray(new LockHandler[_locks.size()])) { if (handler.getNodeName().equals(_nodeName)) { handler.clientUnsubscribed(cloid); } @@ -742,7 +742,7 @@ public class PeerManager protected void peerDidLogoff (PeerNode peer) { // clear any locks held by that peer - for (LockHandler handler : _locks.values()) { + for (LockHandler handler : _locks.values().toArray(new LockHandler[_locks.size()])) { if (handler.getNodeName().equals(peer.getNodeName())) { handler.clientDidLogoff(); }