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 ) {