diff options
Diffstat (limited to 'plugins/org.eclipse.jst.jee/jeecreation/org/eclipse/jst/jee/model/internal/JEE5ModelProvider.java')
-rw-r--r-- | plugins/org.eclipse.jst.jee/jeecreation/org/eclipse/jst/jee/model/internal/JEE5ModelProvider.java | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/plugins/org.eclipse.jst.jee/jeecreation/org/eclipse/jst/jee/model/internal/JEE5ModelProvider.java b/plugins/org.eclipse.jst.jee/jeecreation/org/eclipse/jst/jee/model/internal/JEE5ModelProvider.java index c417e0b8b..574d0ae80 100644 --- a/plugins/org.eclipse.jst.jee/jeecreation/org/eclipse/jst/jee/model/internal/JEE5ModelProvider.java +++ b/plugins/org.eclipse.jst.jee/jeecreation/org/eclipse/jst/jee/model/internal/JEE5ModelProvider.java @@ -14,6 +14,7 @@ import java.io.FileNotFoundException; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; +import java.util.Iterator; import java.util.List; import org.eclipse.core.resources.IFile; @@ -126,6 +127,21 @@ public class JEE5ModelProvider implements IModelProvider, ResourceStateInputProv } } private void addManagedResource(XMLResourceImpl res) { + if (res == null || modelResources.contains(res)) { + return; + } + URI uri = res.getURI(); + for (Iterator iterator = modelResources.iterator(); iterator.hasNext();) { + XMLResourceImpl resource = (XMLResourceImpl) iterator.next(); + if (resource == null) { + iterator.remove(); + continue; + } + if (resource.getURI() != null && resource.getURI().equals(uri)) { + resource.eAdapters().remove(resourceAdapter); + iterator.remove(); + } + } modelResources.add(res); if (!res.eAdapters().contains(resourceAdapter)) res.eAdapters().add(resourceAdapter); |