Fix ConcurrentModificationException

Use CopyOnWriteArrayList instead of Arraylist to
avoid ConcurrentModificationException.

Bug: 147334979
Test: make -j42 RunSettingsRoboTests

Change-Id: I669f379d3eba6a086c6bd97cde2b78d92fb5c481
This commit is contained in:
hughchen
2020-01-09 17:58:00 +08:00
parent c770c9133a
commit 1045823b3c
3 changed files with 16 additions and 11 deletions

View File

@@ -116,7 +116,8 @@ public class MediaDeviceUpdateWorkerTest {
newDevices.add(mMediaDevice2);
mMediaDeviceUpdateWorker.onDeviceListUpdate(newDevices);
final List<MediaDevice> devices = mMediaDeviceUpdateWorker.getMediaDevices();
final List<MediaDevice> devices =
new ArrayList<>(mMediaDeviceUpdateWorker.getMediaDevices());
assertThat(devices.get(0).getId()).isEqualTo(newDevices.get(0).getId());
assertThat(devices.get(1).getId()).isEqualTo(newDevices.get(1).getId());
@@ -134,7 +135,8 @@ public class MediaDeviceUpdateWorkerTest {
newDevices.add(device3);
mMediaDeviceUpdateWorker.onDeviceListUpdate(newDevices);
final List<MediaDevice> devices = mMediaDeviceUpdateWorker.getMediaDevices();
final List<MediaDevice> devices =
new ArrayList<>(mMediaDeviceUpdateWorker.getMediaDevices());
assertThat(devices.size()).isEqualTo(newDevices.size());
}
@@ -147,7 +149,8 @@ public class MediaDeviceUpdateWorkerTest {
newDevices.add(mMediaDevice1);
mMediaDeviceUpdateWorker.onDeviceListUpdate(newDevices);
final List<MediaDevice> devices = mMediaDeviceUpdateWorker.getMediaDevices();
final List<MediaDevice> devices =
new ArrayList<>(mMediaDeviceUpdateWorker.getMediaDevices());
assertThat(devices.size()).isEqualTo(newDevices.size());
}