[261093] Publish occurs during run on server even the server is synchronized.
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/actions/RunOnServerActionDelegate.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/actions/RunOnServerActionDelegate.java
index 6304836..6df0cf2 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/actions/RunOnServerActionDelegate.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/actions/RunOnServerActionDelegate.java
@@ -422,21 +422,31 @@
final IServer server3 = server;
server.restart(launchMode, new IServer.IOperationListener() {
public void done(IStatus result) {
- server3.publish(IServer.PUBLISH_INCREMENTAL, null, info, new IServer.IOperationListener() {
- public void done(IStatus result2) {
- if (result2.isOK())
- clientJob.schedule();
- }
- });
+ // Only publish if the server requires publish before launching the client.
+ if (server3.shouldPublish()) {
+ server3.publish(IServer.PUBLISH_INCREMENTAL, null, info, new IServer.IOperationListener() {
+ public void done(IStatus result2) {
+ if (result2.isOK())
+ clientJob.schedule();
+ }
+ });
+ } else {
+ clientJob.schedule();
+ }
}
});
} else {
- server.publish(IServer.PUBLISH_INCREMENTAL, null, info, new IServer.IOperationListener() {
- public void done(IStatus result) {
- if (result.isOK())
- clientJob.schedule();
- }
- });
+ // Only publish if the server requires publish before launching the client.
+ if (server.shouldPublish()) {
+ server.publish(IServer.PUBLISH_INCREMENTAL, null, info, new IServer.IOperationListener() {
+ public void done(IStatus result) {
+ if (result.isOK())
+ clientJob.schedule();
+ }
+ });
+ } else {
+ clientJob.schedule();
+ }
}
} else if (state != IServer.STATE_STOPPING) {
final LaunchClientJob clientJob = new LaunchClientJob(server, modules, launchMode, moduleArtifact, launchableAdapter, client);
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/actions/RunOnServerLaunchConfigurationDelegate.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/actions/RunOnServerLaunchConfigurationDelegate.java
index 1c01ae3..4a4303a 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/actions/RunOnServerLaunchConfigurationDelegate.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/actions/RunOnServerLaunchConfigurationDelegate.java
@@ -220,21 +220,31 @@
final IServer server2 = server;
server.restart(launchMode, new IServer.IOperationListener() {
public void done(IStatus result) {
- server2.publish(IServer.PUBLISH_INCREMENTAL, null, info, new IServer.IOperationListener() {
- public void done(IStatus result2) {
- if (result2.isOK())
- clientJob.schedule();
- }
- });
+ // Only publish if the server requires publish before launching the client.
+ if (server2.shouldPublish()) {
+ server2.publish(IServer.PUBLISH_INCREMENTAL, null, info, new IServer.IOperationListener() {
+ public void done(IStatus result2) {
+ if (result2.isOK())
+ clientJob.schedule();
+ }
+ });
+ } else {
+ clientJob.schedule();
+ }
}
});
} else {
- server.publish(IServer.PUBLISH_INCREMENTAL, null, info, new IServer.IOperationListener() {
- public void done(IStatus result) {
- if (result.isOK())
- clientJob.schedule();
- }
- });
+ // Only publish if the server requires publish before launching the client.
+ if (server.shouldPublish()) {
+ server.publish(IServer.PUBLISH_INCREMENTAL, null, info, new IServer.IOperationListener() {
+ public void done(IStatus result) {
+ if (result.isOK())
+ clientJob.schedule();
+ }
+ });
+ } else {
+ clientJob.schedule();
+ }
}
} else if (state != IServer.STATE_STOPPING) {
final LaunchClientJob clientJob = new LaunchClientJob(server, modules, launchMode, moduleArtifact, launchableAdapter, client);