[239396] Publsih to JBoss 4.2 fails with message "Publish failed using Ant publisher"
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/AbstractModuleAssembler.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/AbstractModuleAssembler.java
index 49e1347..67a87db 100644
--- a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/AbstractModuleAssembler.java
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/AbstractModuleAssembler.java
@@ -19,7 +19,6 @@
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.core.runtime.Status;
-import org.eclipse.wst.server.core.util.PublishUtil;
 import org.eclipse.jst.server.generic.core.internal.CorePlugin;
 import org.eclipse.jst.server.generic.core.internal.GenericServer;
 import org.eclipse.jst.server.generic.servertype.definition.ServerRuntime;
@@ -28,6 +27,7 @@
 import org.eclipse.wst.server.core.model.IModuleFolder;
 import org.eclipse.wst.server.core.model.IModuleResource;
 import org.eclipse.wst.server.core.util.ProjectModule;
+import org.eclipse.wst.server.core.util.PublishHelper;
 
 /**
  * Base class for module assemblers
@@ -40,6 +40,7 @@
 	protected IModule fModule; 
 	protected GenericServer fServer;
 	protected IPath fAssembleRoot;
+	protected PublishHelper publishHelper;
 	
 	protected AbstractModuleAssembler(IModule module, GenericServer server, IPath assembleRoot)
 	{
@@ -47,6 +48,8 @@
 		fServerdefinition=server.getServerDefinition();
 		fServer=server;
 		fAssembleRoot = assembleRoot;
+		//TODO: Verify the temporary directory location.
+		publishHelper = new PublishHelper(CorePlugin.getDefault().getStateLocation().append("tmp").toFile());
 	}
 	
 	/**
@@ -157,7 +160,7 @@
 
 	protected IPath copyModule(IModule module, IProgressMonitor monitor) throws CoreException {
 		ProjectModule pm =(ProjectModule)module.loadAdapter(ProjectModule.class, monitor);
-		IStatus[] status = PublishUtil.publishSmart(pm.members(), fAssembleRoot, monitor);
+		IStatus[] status = publishHelper.publishSmart(pm.members(), fAssembleRoot, monitor);
 		if (status != null && status.length > 0)
 			throw new CoreException(status[0]);
 		return fAssembleRoot;
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/EarModuleAssembler.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/EarModuleAssembler.java
index ec95a45..06af0d7 100644
--- a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/EarModuleAssembler.java
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/EarModuleAssembler.java
@@ -26,7 +26,6 @@
 import org.eclipse.wst.server.core.model.IModuleResource;
 import org.eclipse.wst.server.core.model.IModuleResourceDelta;
 import org.eclipse.wst.server.core.util.ProjectModule;
-import org.eclipse.wst.server.core.util.PublishUtil;
 
 /**
  * Utility for EAR module assembly.
@@ -54,7 +53,7 @@
 			if( jeeModule != null && jeeModule.isBinary() ){//Binary module just copy
 				ProjectModule pm = (ProjectModule) module.loadAdapter(ProjectModule.class, null);
 				IModuleResource[] resources = pm.members();
-				PublishUtil.publishFull(resources, parent, monitor);
+				publishHelper.publishFull(resources, parent, monitor);
 				continue;//done! no need to go further
 			}
 			if( shouldRepack( module ) ){