[121692] Optimized save of server publish info
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 193c4eb..a5ebe88 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
@@ -811,6 +811,7 @@
 			}, monitor);
 			
 			getServerPublishInfo().removeDeletedModulePublishInfo(modules2);
+			getServerPublishInfo().save();
 			
 			return status;
 		} catch (Exception e) {
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerPublishInfo.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerPublishInfo.java
index 43ff321..3fc2fa9 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerPublishInfo.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerPublishInfo.java
@@ -94,6 +94,10 @@
 		save();
 	}*/
 
+	/**
+	 * 
+	 * Note: save() must be called manually after making this call.
+	 */
 	public void removeDeletedModulePublishInfo(List moduleList) {
 		int size = moduleList.size();
 		List removed = new ArrayList();
@@ -118,8 +122,6 @@
 			String key = (String) iterator.next();
 			modulePublishInfo.remove(key);
 		}
-		
-		save();
 	}
 
 	/**
@@ -222,7 +224,12 @@
 			Trace.trace(Trace.SEVERE, "Could not save publish information", e);
 		}
 	}
-	
+
+	/**
+	 * 
+	 * Note: save() must be called manually after making this call.
+	 * @param module
+	 */
 	public void fill(IModule[] module) {
 		ModulePublishInfo mpi = getModulePublishInfo(module);
 		int size = module.length;
@@ -233,7 +240,6 @@
 		} catch (CoreException ce) {
 			// ignore
 		}
-		save();
 	}
 
 	protected IModuleResourceDelta[] getDelta(IModule[] module) {