[204194] Reducing caching to refresh launchable for Tomcat
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/fragment/OptionalClientWizardFragment.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/fragment/OptionalClientWizardFragment.java
index 1be60ea..e3cc44a 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/fragment/OptionalClientWizardFragment.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/fragment/OptionalClientWizardFragment.java
@@ -29,6 +29,7 @@
protected IModuleArtifact moduleArtifact;
protected IServer lastServer;
+ protected Object lastLaunchable;
public OptionalClientWizardFragment(IModuleArtifact moduleArtifact) {
super();
@@ -48,13 +49,6 @@
IServer server = (IServer) getTaskModel().getObject(TaskModel.TASK_SERVER);
if (lastServer == null && server == null)
return;
- if (lastServer != null && lastServer.equals(server))
- return;
-
- lastServer = server;
-
- getTaskModel().putObject(WizardTaskUtil.TASK_CLIENTS, null);
- getTaskModel().putObject(WizardTaskUtil.TASK_HAS_CLIENTS, new Boolean(false));
// get the launchable adapter and module object
Object launchable = null;
@@ -67,11 +61,25 @@
getTaskModel().putObject(WizardTaskUtil.TASK_LAUNCHABLE_ADAPTER, null);
getTaskModel().putObject(WizardTaskUtil.TASK_LAUNCHABLE, null);
EclipseUtil.openError(null, ce.getStatus());
+ return;
}
+ // stop here if the server and launchable haven't changed
+ if (lastServer != null && lastServer.equals(server)) {
+ if (lastLaunchable == null && launchable == null)
+ return;
+ if (lastLaunchable != null && lastLaunchable.equals(launchable)) {
+ return;
+ }
+ }
+ lastServer = server;
+ lastLaunchable = launchable;
+
String launchMode = (String) getTaskModel().getObject(TaskModel.TASK_LAUNCH_MODE);
clients = ServerUIPlugin.getClients(server, launchable, launchMode);
+ getTaskModel().putObject(WizardTaskUtil.TASK_CLIENTS, null);
+ getTaskModel().putObject(WizardTaskUtil.TASK_HAS_CLIENTS, new Boolean(false));
if (clients != null) {
if (clients.length > 1) {
getTaskModel().putObject(WizardTaskUtil.TASK_CLIENTS, clients);