Use thread safe set for RemoteConnection.mListeners

Switch from HashSet to set backed by a ConcurrentHashMap to prevent
ConcurrentModificationExceptions.

Bug: 16901565
Change-Id: I7666ef61e94994963b2c2634a9a250365e753888
This commit is contained in:
Sailesh Nepal
2014-08-09 16:36:35 -07:00
parent a351ab9698
commit d5bcb68cb7

View File

@@ -28,6 +28,7 @@ import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
/**
* RemoteConnection object used by RemoteConnectionService.
@@ -179,7 +180,8 @@ public final class RemoteConnection {
private IConnectionService mConnectionService;
private final String mConnectionId;
private final Set<Listener> mListeners = new HashSet<>();
private final Set<Listener> mListeners = Collections.newSetFromMap(
new ConcurrentHashMap<Listener, Boolean>(2));
private final Set<RemoteConnection> mConferenceableConnections = new HashSet<>();
private int mState = Connection.State.NEW;