Bug 547929 - CoModException below ContainerGCCToolChainProvider$2.run
- change DockerConnection temp images list to be a
CopyOnWriteArrayList to prevent ConcurrentModificationException
when responding to a ChangeEvent
Change-Id: I01f728e1ce3cfcdf8cadddaef8754ef8e0441739
Reviewed-on: https://git.eclipse.org/r/143296
Tested-by: Linux Tools Bot <linuxtools-bot@eclipse.org>
Reviewed-by: Jeff Johnston <jjohnstn@redhat.com>
diff --git a/containers/org.eclipse.linuxtools.docker.core/src/org/eclipse/linuxtools/internal/docker/core/DockerConnection.java b/containers/org.eclipse.linuxtools.docker.core/src/org/eclipse/linuxtools/internal/docker/core/DockerConnection.java
index 81008c6..71c855a 100644
--- a/containers/org.eclipse.linuxtools.docker.core/src/org/eclipse/linuxtools/internal/docker/core/DockerConnection.java
+++ b/containers/org.eclipse.linuxtools.docker.core/src/org/eclipse/linuxtools/internal/docker/core/DockerConnection.java
@@ -34,6 +34,7 @@
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
+import java.util.concurrent.CopyOnWriteArrayList;
import javax.ws.rs.ProcessingException;
@@ -1078,7 +1079,7 @@
// TODO: remove this method from the API
@Override
public List<IDockerImage> listImages() throws DockerException {
- final List<IDockerImage> tempImages = new ArrayList<>();
+ final List<IDockerImage> tempImages = new CopyOnWriteArrayList<>();
synchronized (imageLock) {
try {
final List<Image> nativeImages = new ArrayList<>();