[188484] Create 1.5.4 patch for bug 187187
diff --git a/plugins/org.eclipse.wst.server.core/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.server.core/META-INF/MANIFEST.MF index 9f5b093..09d14c1 100644 --- a/plugins/org.eclipse.wst.server.core/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.wst.server.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.wst.server.core; singleton:=true -Bundle-Version: 1.0.106.qualifier +Bundle-Version: 1.0.107.qualifier Bundle-Activator: org.eclipse.wst.server.core.internal.ServerPlugin Bundle-Vendor: %providerName Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/ServerUtil.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/ServerUtil.java index 780562c..1887624 100644 --- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/ServerUtil.java +++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/ServerUtil.java
@@ -49,14 +49,22 @@ if (project == null) throw new IllegalArgumentException(); - IModule[] modules = getModules(); - if (modules != null) { - int size = modules.length; + ModuleFactory[] factories = ServerPlugin.getModuleFactories(); + if (factories != null) { + int size = factories.length; for (int i = 0; i < size; i++) { - if (modules[i] != null && project.equals(modules[i].getProject())) - return modules[i]; + IModule[] modules = factories[i].getModules(); + if (modules != null) { + int size2 = modules.length; + for (int j = 0; j < size2; j++) { + if (project.equals(modules[j].getProject()) && isSupportedModule(factories[i].getModuleTypes(), modules[j].getModuleType())) { + return modules[j]; + } + } + } } } + return null; } @@ -276,7 +284,7 @@ * @return a possibly empty array of modules */ private static IModule[] getModules() { - List list = new ArrayList(); + Set set = new HashSet(); ModuleFactory[] factories = ServerPlugin.getModuleFactories(); if (factories != null) { @@ -286,9 +294,9 @@ if (modules != null) { int size2 = modules.length; for (int j = 0; j < size2; j++) { - if (!list.contains(modules[j])) { + if (!set.contains(modules[j])) { if (isSupportedModule(factories[i].getModuleTypes(), modules[j].getModuleType())) - list.add(modules[j]); + set.add(modules[j]); else Trace.trace(Trace.WARNING, "Invalid module returned from factory, ignored: " + modules[j]); } @@ -296,8 +304,8 @@ } } } - IModule[] modules = new IModule[list.size()]; - list.toArray(modules); + IModule[] modules = new IModule[set.size()]; + set.toArray(modules); return modules; }