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;
}
/**