[233735] Publishing failure
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Server.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Server.java
index 865c80f..cd60859 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Server.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Server.java
@@ -15,7 +15,6 @@
 import org.eclipse.core.resources.*;
 import org.eclipse.core.runtime.*;
 import org.eclipse.core.runtime.jobs.IJobChangeEvent;
-import org.eclipse.core.runtime.jobs.IJobManager;
 import org.eclipse.core.runtime.jobs.ISchedulingRule;
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.core.runtime.jobs.JobChangeAdapter;
@@ -1091,24 +1090,13 @@
 		// make sure that the delegate is loaded and the server state is correct
 		loadAdapter(ServerBehaviourDelegate.class, monitor);
 		
-		ISchedulingRule rule = MultiRule.combine(new ISchedulingRule[] {
-			ResourcesPlugin.getWorkspace().getRoot(), Server.this
-		});
-		
-		IJobManager jobManager = Job.getJobManager();
-		try {
-			jobManager.beginRule(rule, monitor);
-			
-			if (((ServerType)getServerType()).startBeforePublish() && (getServerState() == IServer.STATE_STOPPED)) {
-				IStatus status = startImpl(ILaunchManager.RUN_MODE, monitor);
-				if (status != null && status.getSeverity() == IStatus.ERROR)
-					return status;
-			}
-			
-			return publishImpl(kind, null, null, monitor);
-		} finally {
-			jobManager.endRule(rule);
+		if (((ServerType)getServerType()).startBeforePublish() && (getServerState() == IServer.STATE_STOPPED)) {
+			IStatus status = startImpl(ILaunchManager.RUN_MODE, monitor);
+			if (status != null && status.getSeverity() == IStatus.ERROR)
+				return status;
 		}
+		
+		return publishImpl(kind, null, null, monitor);
 	}
 
 	/*