[163580] Concurrent modification error
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/ModifyModulesComposite.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/ModifyModulesComposite.java
index 8dcde22..b2be385 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/ModifyModulesComposite.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/ModifyModulesComposite.java
@@ -304,7 +304,7 @@
// ignore
}
}
-
+
iterator = modules.iterator();
while (iterator.hasNext()) {
IModule module = (IModule) iterator.next();
@@ -317,8 +317,15 @@
}
}
- // get children recursively
+ // get children recursively one level
+ // put child elements into a different list to avoid concurrent modifications
iterator = childModuleMap.keySet().iterator();
+ List list = new ArrayList();
+ while (iterator.hasNext()) {
+ list.add(iterator.next());
+ }
+
+ iterator = list.iterator();
while (iterator.hasNext()) {
ChildModuleMapKey key = (ChildModuleMapKey) iterator.next();
IModule[] children0 = (IModule[]) childModuleMap.get(key);