Revision: 1457
          http://stripes.svn.sourceforge.net/stripes/?rev=1457&view=rev
Author:   bengunter
Date:     2011-12-02 19:19:48 +0000 (Fri, 02 Dec 2011)
Log Message:
-----------
Applied fix for STS-827 from 1.5.x branch.

Modified Paths:
--------------
    
trunk/stripes/src/net/sourceforge/stripes/controller/multipart/CosMultipartWrapper.java

Modified: 
trunk/stripes/src/net/sourceforge/stripes/controller/multipart/CosMultipartWrapper.java
===================================================================
--- 
trunk/stripes/src/net/sourceforge/stripes/controller/multipart/CosMultipartWrapper.java
     2011-12-02 19:18:32 UTC (rev 1456)
+++ 
trunk/stripes/src/net/sourceforge/stripes/controller/multipart/CosMultipartWrapper.java
     2011-12-02 19:19:48 UTC (rev 1457)
@@ -15,8 +15,11 @@
 package net.sourceforge.stripes.controller.multipart;
 
 import com.oreilly.servlet.MultipartRequest;
+import com.oreilly.servlet.multipart.FileRenamePolicy;
+
 import net.sourceforge.stripes.action.FileBean;
 import net.sourceforge.stripes.controller.FileUploadLimitExceededException;
+import net.sourceforge.stripes.exception.StripesRuntimeException;
 
 import javax.servlet.http.HttpServletRequest;
 import java.io.IOException;
@@ -62,15 +65,29 @@
      * @throws FileUploadLimitExceededException if the POST content is longer 
than the
      *         maxPostSize supplied.
      */
-    public void build(HttpServletRequest request, File tempDir, long 
maxPostSize)
+    public void build(HttpServletRequest request, final File tempDir, long 
maxPostSize)
             throws IOException, FileUploadLimitExceededException {
 
         try {
+            // Create a new file in the temp directory in case of file name 
conflict
+            FileRenamePolicy renamePolicy = new FileRenamePolicy() {
+                public File rename(File arg0) {
+                    try {
+                        return File.createTempFile("cos", "", tempDir);
+                    }
+                    catch (IOException e) {
+                        throw new StripesRuntimeException(
+                                "Caught an exception while trying to rename an 
uploaded file", e);
+                    }
+                }
+            };
+
             this.charset = request.getCharacterEncoding();
             this.multipart = new MultipartRequest(request,
                                                   tempDir.getAbsolutePath(),
                                                   (int) maxPostSize,
-                                                  this.charset);
+                                                  this.charset,
+                                                  renamePolicy);
         }
         catch (IOException ioe) {
             Matcher matcher = EXCEPTION_PATTERN.matcher(ioe.getMessage());

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure 
contains a definitive record of customers, application performance, 
security threats, fraudulent activity, and more. Splunk takes this 
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
_______________________________________________
Stripes-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/stripes-development

Reply via email to