[218982] Publish delta incorrect
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 4a1a6d8..cb71453 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
@@ -995,8 +995,13 @@
 			firePublishStarted();
 			
 			getServerPublishInfo().startCaching();
-			//IStatus status = 
-			getBehaviourDelegate(monitor).publish(kind, modules3, monitor, info);
+			IStatus status = Status.OK_STATUS;
+			try {
+				getBehaviourDelegate(monitor).publish(kind, modules3, monitor, info);
+			} catch (CoreException ce) {
+				Trace.trace(Trace.WARNING, "Error during publishing", ce);
+				status = ce.getStatus();
+			}
 			
 			final List<IModule[]> modules2 = new ArrayList<IModule[]>();
 			visit(new IModuleVisitor() {
@@ -1015,7 +1020,7 @@
 			
 			firePublishFinished(Status.OK_STATUS);
 			Trace.trace(Trace.PERFORMANCE, "Server.publish(): <" + (System.currentTimeMillis() - time) + "> " + getServerType().getId());
-			return Status.OK_STATUS;
+			return status;
 		} catch (Exception e) {
 			Trace.trace(Trace.SEVERE, "Error calling delegate publish() " + toString(), e);
 			return new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0, Messages.errorPublishing, e);
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerPreferences.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerPreferences.java
index d683646..a0e8664 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerPreferences.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerPreferences.java
@@ -90,8 +90,6 @@
 		return preferences.getInt(PREF_MODULE_START_TIMEOUT);
 	}
 
-
-
 	/**
 	 * Set the default values.
 	 */
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ServerBehaviourDelegate.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ServerBehaviourDelegate.java
index 3d72fea..307389e 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ServerBehaviourDelegate.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ServerBehaviourDelegate.java
@@ -758,7 +758,7 @@
 				return Status.CANCEL_STATUS;
 			
 			// publish modules
-			publishModules(kind, moduleList, null, tempMulti, monitor);
+			publishModules(kind, moduleList, deltaKindList, tempMulti, monitor);
 			
 			if (monitor.isCanceled())
 				return Status.CANCEL_STATUS;
@@ -916,16 +916,15 @@
 			if (getServer().getModulePublishState(module) == IServer.PUBLISH_STATE_UNKNOWN)
 				kind2 = IServer.PUBLISH_FULL;
 			
-			int deltaKind = 0;
+			/*int deltaKind = ServerBehaviourDelegate.ADDED;
 			if (hasBeenPublished(module)) {
 				if (getPublishedResourceDelta(module).length == 0)
 					deltaKind = ServerBehaviourDelegate.NO_CHANGE;
 				else
 					deltaKind = ServerBehaviourDelegate.CHANGED;
-			} else
-				deltaKind = ServerBehaviourDelegate.ADDED;
+			} // TODO REMOVED*/
 			
-			IStatus status = publishModule(kind2, module, deltaKind, ProgressUtil.getSubMonitorFor(monitor, 3000));
+			IStatus status = publishModule(kind2, module, ((Integer)deltaKind2.get(i)).intValue(), ProgressUtil.getSubMonitorFor(monitor, 3000));
 			if (status != null && !status.isOK())
 				multi.add(status);
 		}