225965  -  Multiple calls to identical URIResolverExtension in one call to ExtensibleURIResolver
diff --git a/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/URIResolverExtensionRegistry.java b/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/URIResolverExtensionRegistry.java
index 1403071..e5c22e8 100644
--- a/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/URIResolverExtensionRegistry.java
+++ b/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/URIResolverExtensionRegistry.java
@@ -26,6 +26,8 @@
 public class URIResolverExtensionRegistry
 {
 	protected HashMap map = new HashMap();
+	
+	protected List resolverList = new ArrayList();
 
 	public static final int STAGE_PRENORMALIZATION = 1;
 
@@ -84,6 +86,8 @@
 		URIResolverExtensionDescriptor info = new URIResolverExtensionDescriptor(
 				className, pluginId, projectNatureIds, resourceType, stage, priority);
 
+		resolverList.add(info);
+		
 		Iterator idsIter = projectNatureIds.iterator();
 		while (idsIter.hasNext())
 		{
@@ -112,29 +116,33 @@
 	 */
 	public List getExtensionDescriptors(IProject project)
 	{
-	  List result = new ArrayList();
-	  List lowPriorityList = new ArrayList();
-	  List mediumPriorityList = new ArrayList();
-	  List highPriorityList = new ArrayList();          
-	  for (Iterator i = map.keySet().iterator(); i.hasNext();)
-	  {
-	    String key = (String) i.next();
-	    try
-	    {
-	      if (key == NULL_PROJECT_NATURE_ID || project == null || project.hasNature(key))
-	      {
-	        highPriorityList.addAll((List) ((HashMap) map.get(key)).get(PRIORITY_HIGH));
-	        mediumPriorityList.addAll((List) ((HashMap) map.get(key)).get(PRIORITY_MEDIUM));
-	        lowPriorityList.addAll((List) ((HashMap) map.get(key)).get(PRIORITY_LOW));
-	      }
-	    } catch (CoreException e)
-	    {
-	    }
+	  if(project != null) {
+		  List result = new ArrayList();
+		  List lowPriorityList = new ArrayList();
+		  List mediumPriorityList = new ArrayList();
+		  List highPriorityList = new ArrayList();          
+		  for (Iterator i = map.keySet().iterator(); i.hasNext();)
+		  {
+		    String key = (String) i.next();
+		    try
+		    {
+		      if (key == NULL_PROJECT_NATURE_ID || project.hasNature(key))
+		      {
+		        highPriorityList.addAll((List) ((HashMap) map.get(key)).get(PRIORITY_HIGH));
+		        mediumPriorityList.addAll((List) ((HashMap) map.get(key)).get(PRIORITY_MEDIUM));
+		        lowPriorityList.addAll((List) ((HashMap) map.get(key)).get(PRIORITY_LOW));
+		      }
+		    } catch (CoreException e)
+		    {
+		    }
+		  }
+		  result.addAll(highPriorityList);
+		  result.addAll(mediumPriorityList);
+		  result.addAll(lowPriorityList);
+		  return result;
+	  } else {
+		  return resolverList;
 	  }
-	  result.addAll(highPriorityList);
-	  result.addAll(mediumPriorityList);
-	  result.addAll(lowPriorityList);
-	  return result;
 	}
 
 	/**