[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);
 			}