This is an automated email from the ASF dual-hosted git repository.

jochen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-fileupload.git


The following commit(s) were added to refs/heads/master by this push:
     new 5c2302b  PR: FILEUPLOAD-293
5c2302b is described below

commit 5c2302bbf3859aabf3a719285237f6d0773612b2
Author: Jochen Wiedmann (jwi) <jochen.wiedm...@softwareag.com>
AuthorDate: Sun Feb 24 15:09:12 2019 +0100

    PR: FILEUPLOAD-293
    
    Regression: Due to use of FileUtils.moveFile internally, it was no longer 
possible to overwrite an existing file in DiskFileItem.write(File). Fixed by 
deleting the target file, if possible.
---
 src/changes/changes.xml                                          | 1 +
 .../java/org/apache/commons/fileupload2/disk/DiskFileItem.java   | 3 +++
 .../java/org/apache/commons/fileupload2/DiskFileUploadTest.java  | 9 +--------
 3 files changed, 5 insertions(+), 8 deletions(-)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 0aba4c5..a820ea3 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -46,6 +46,7 @@ The <action> type attribute can be add,update,fix,remove.
     <release version="2.0" date="TBD" description="2.0 Release">
       <action                        dev="jochen" type="update">Changing Maven 
coordinates, and package name, due to binary incompatible changes.</action>
       <action                        dev="jochen" type="update">Bumping 
Compiler Level to 1.8.</action>
+      <action issue="FILEUPLOAD-293" dev="jochen" 
type="fix">DiskFileItem.write(File) had been changed to use FileUtils.moveFile 
internally, preventing an existing file as the target.</action>
     </release>
     <release version="1.4" date="2018-12-23" description="1.4 Release">
       <action issue="FILEUPLOAD-292" dev="chtompki" type="update">Don't create 
un-needed resources in FileUploadBase.java</action>
diff --git 
a/src/main/java/org/apache/commons/fileupload2/disk/DiskFileItem.java 
b/src/main/java/org/apache/commons/fileupload2/disk/DiskFileItem.java
index 2b9bfa7..d5c538d 100644
--- a/src/main/java/org/apache/commons/fileupload2/disk/DiskFileItem.java
+++ b/src/main/java/org/apache/commons/fileupload2/disk/DiskFileItem.java
@@ -402,6 +402,9 @@ public class DiskFileItem
                  * in a temporary location so move it to the
                  * desired file.
                  */
+                if (file.exists()) {
+                       file.delete();
+                }
                 FileUtils.moveFile(outputFile, file);
             } else {
                 /*
diff --git 
a/src/test/java/org/apache/commons/fileupload2/DiskFileUploadTest.java 
b/src/test/java/org/apache/commons/fileupload2/DiskFileUploadTest.java
index a9fcdec..fad393c 100644
--- a/src/test/java/org/apache/commons/fileupload2/DiskFileUploadTest.java
+++ b/src/test/java/org/apache/commons/fileupload2/DiskFileUploadTest.java
@@ -91,14 +91,7 @@ public class DiskFileUploadTest {
         assertNotNull(items);
         assertFalse(items.isEmpty());
         final DiskFileItem dfi = (DiskFileItem) items.get(0);
-        final File out = new File("target/unit-tests/DiskFileUpload/out.file");
-        if (out.isFile()) {
-               out.delete();
-        }
-        final File outDir = out.getParentFile();
-        if (!outDir.isDirectory()) {
-               outDir.mkdirs();
-        }
+        final File out = File.createTempFile("install", ".tmp");
         dfi.write(out);
     }
 }

Reply via email to