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