Avoid ConcurrentHashMapModification Exception
diff --git a/plugins/org.eclipse.libra.warproducts.ui/src/org/eclipse/libra/warproducts/ui/validation/WARProductValidateAction.java b/plugins/org.eclipse.libra.warproducts.ui/src/org/eclipse/libra/warproducts/ui/validation/WARProductValidateAction.java index 87d134f..068456e 100644 --- a/plugins/org.eclipse.libra.warproducts.ui/src/org/eclipse/libra/warproducts/ui/validation/WARProductValidateAction.java +++ b/plugins/org.eclipse.libra.warproducts.ui/src/org/eclipse/libra/warproducts/ui/validation/WARProductValidateAction.java
@@ -10,7 +10,6 @@ package org.eclipse.libra.warproducts.ui.validation; import java.util.*; -import java.util.Map.Entry; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.NullProgressMonitor; @@ -112,9 +111,11 @@ } private static void verifyPDEErrors( final Map<Object,Object[]> map ) { - for(final Entry<?,?> entry: map.entrySet()){ - Object currentKey = entry.getKey(); - ResolverError[] errors = (ResolverError[]) entry.getValue(); + final ArrayList<Object> keys = new ArrayList<Object>(map.size()); + keys.addAll( map.keySet() ); + + for(final Object currentKey: keys){ + ResolverError[] errors = (ResolverError[]) map.get( currentKey ); ResolverError[] validErrors = validateErrors( errors ); map.remove( currentKey ); if( validErrors.length > 0 ) {