Author: lukaszlenart
Date: Fri Apr 20 22:23:26 2012
New Revision: 1328528
URL: http://svn.apache.org/viewvc?rev=1328528&view=rev
Log:
WW-3801 adds logic to clean ups uploaded files
Modified:
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/PrepareOperations.java
Modified:
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/PrepareOperations.java
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/PrepareOperations.java?rev=1328528&r1=1328527&r2=1328528&view=diff
==============================================================================
---
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/PrepareOperations.java
(original)
+++
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/PrepareOperations.java
Fri Apr 20 22:23:26 2012
@@ -20,23 +20,22 @@
*/
package org.apache.struts2.dispatcher.ng;
-import org.apache.struts2.dispatcher.Dispatcher;
-import org.apache.struts2.dispatcher.mapper.ActionMapping;
-import org.apache.struts2.dispatcher.mapper.ActionMapper;
-import org.apache.struts2.StrutsException;
-import org.apache.struts2.RequestUtils;
-
-import javax.servlet.ServletException;
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.util.ValueStack;
import com.opensymphony.xwork2.util.ValueStackFactory;
import com.opensymphony.xwork2.util.logging.Logger;
import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.struts2.RequestUtils;
+import org.apache.struts2.StrutsConstants;
+import org.apache.struts2.StrutsException;
+import org.apache.struts2.dispatcher.Dispatcher;
+import org.apache.struts2.dispatcher.mapper.ActionMapper;
+import org.apache.struts2.dispatcher.mapper.ActionMapping;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
@@ -47,6 +46,8 @@ import java.util.regex.Pattern;
*/
public class PrepareOperations {
+ private static final Logger LOG =
LoggerFactory.getLogger(PrepareOperations.class);
+
private ServletContext servletContext;
private Dispatcher dispatcher;
private static final String STRUTS_ACTION_MAPPING_KEY =
"struts.actionMapping";
@@ -98,10 +99,18 @@ public class PrepareOperations {
return;
}
}
-
// always clean up the thread request, even if an action hasn't been
executed
- ActionContext.setContext(null);
- Dispatcher.setInstance(null);
+ try {
+ dispatcher.cleanUpRequest(request);
+ } catch (IOException e) {
+ if (LOG.isWarnEnabled()) {
+ LOG.warn("Cannot clean up the request, some files can still
remain in #1 after upload!", e,
+ StrutsConstants.STRUTS_MULTIPART_SAVEDIR);
+ }
+ } finally {
+ ActionContext.setContext(null);
+ Dispatcher.setInstance(null);
+ }
}
/**
@@ -173,7 +182,7 @@ public class PrepareOperations {
*/
public void cleanupDispatcher() {
if (dispatcher == null) {
- throw new StrutsException("something is seriously wrong,
Dispatcher is not initialized (null) ");
+ throw new StrutsException("Something is seriously wrong,
Dispatcher is not initialized (null) ");
} else {
try {
dispatcher.cleanup();