[154232] IModuleFolder.members() should not return null
diff --git a/plugins/org.eclipse.jst.server.core/sjavacore/org/eclipse/jst/server/core/PublishUtil.java b/plugins/org.eclipse.jst.server.core/sjavacore/org/eclipse/jst/server/core/PublishUtil.java
index 314c769..b058eb4 100644
--- a/plugins/org.eclipse.jst.server.core/sjavacore/org/eclipse/jst/server/core/PublishUtil.java
+++ b/plugins/org.eclipse.jst.server.core/sjavacore/org/eclipse/jst/server/core/PublishUtil.java
@@ -579,6 +579,9 @@
 	}
 
 	private static void addZipEntries(ZipOutputStream zout, IModuleResource[] resources) throws Exception {
+		if (resources == null)
+			return;
+		
 		int size = resources.length;
 		for (int i = 0; i < size; i++) {
 			if (resources[i] instanceof IModuleFolder) {
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleFolder.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleFolder.java
index 2277757..c1f4b1f 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleFolder.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModuleFolder.java
@@ -19,6 +19,7 @@
  * 
  */
 public class ModuleFolder implements IModuleFolder {
+	private static final IModuleResource[] EMPTY_RESOURCE_ARRAY = new IModuleResource[0];
 	protected IContainer container;
 	protected String name;
 	protected IPath path;
@@ -75,6 +76,8 @@
 	 * @see org.eclipse.wst.server.core.model.IModuleFolder#members()
 	 */
 	public IModuleResource[] members() {
+		if (members == null)
+			return EMPTY_RESOURCE_ARRAY;
 		return members;
 	}
 
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 dc7e71c..9298f95 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
@@ -940,7 +940,7 @@
 		
 		return (PublishOperation[]) tasks.toArray(new PublishOperation[tasks.size()]);
 	}
-	
+
 	/**
 	 * Returns all publish tasks that have been targetted to this server type.
 	 * The tasks will not be initialized with a task model. 
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 fc59293..73e2695 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
@@ -390,7 +390,7 @@
 	private static IModuleResourceDelta[] getDeltaTree(IModuleResource[] resources, int kind) {
 		if (resources == null)
 			return new IModuleResourceDelta[0];
-	
+		
 		List list = new ArrayList();
 		
 		// look for duplicates
@@ -426,7 +426,7 @@
 	/**
 	 * Fill the module cache.
 	 */
-	protected void startCaching() {
+	public void startCaching() {
 		Iterator iterator = modulePublishInfo.values().iterator();
 		while (iterator.hasNext()) {
 			ModulePublishInfo mpi = (ModulePublishInfo) iterator.next();