[418748] Excessive memory usage in TLDTagRegistry.initialize() cause by
FacetModuleCoreSupportDelegate.getReferenced()
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/util/FacetModuleCoreSupportDelegate.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/util/FacetModuleCoreSupportDelegate.java
index dbe0a1f..99887a5 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/util/FacetModuleCoreSupportDelegate.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/util/FacetModuleCoreSupportDelegate.java
@@ -11,7 +11,9 @@
package org.eclipse.jst.jsp.core.internal.util;
import java.util.ArrayList;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
import org.eclipse.core.resources.IContainer;
import org.eclipse.core.resources.IFile;
@@ -348,7 +350,7 @@
if (!ModuleCoreNature.isFlexibleProject(current))
return new IProject[0];
- List projects = new ArrayList();
+ Set projects = new HashSet();
IVirtualReference[] references = ComponentCore.createComponent(current).getReferences();
if (references != null) {
for (int i = 0; i < references.length; i++) {
@@ -356,7 +358,7 @@
if (referencedComponent == null)
continue;
IProject project = referencedComponent.getProject();
- if (project == null)
+ if (project == null || project.equals(current))
continue;
projects.add(project);
}