You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ma...@apache.org on 2023/01/03 10:44:53 UTC

[commons-fileupload] 02/07: PR: FILEUPLOAD-293

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

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

commit a2626a902fad47685b3cbe26e176e0e308e93d3a
Author: Jochen Wiedmann (jwi) <jo...@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                                          | 3 +++
 .../java/org/apache/commons/fileupload/disk/DiskFileItem.java    | 3 +++
 .../java/org/apache/commons/fileupload/DiskFileUploadTest.java   | 9 +--------
 3 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 4522eee..42c74c6 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -43,6 +43,9 @@ The <action> type attribute can be add,update,fix,remove.
   </properties>
 
   <body>
+    <release version="1.5" date="TBD" description="1.5 Release">
+      <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>
       <action issue="FILEUPLOAD-282" dev="chtompki" type="update">Upversion complier.source, compiler.target to 1.6</action>
diff --git a/src/main/java/org/apache/commons/fileupload/disk/DiskFileItem.java b/src/main/java/org/apache/commons/fileupload/disk/DiskFileItem.java
index e5e3bf9..375f099 100644
--- a/src/main/java/org/apache/commons/fileupload/disk/DiskFileItem.java
+++ b/src/main/java/org/apache/commons/fileupload/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/fileupload/DiskFileUploadTest.java b/src/test/java/org/apache/commons/fileupload/DiskFileUploadTest.java
index a472c1c..5d2fe2d 100644
--- a/src/test/java/org/apache/commons/fileupload/DiskFileUploadTest.java
+++ b/src/test/java/org/apache/commons/fileupload/DiskFileUploadTest.java
@@ -89,14 +89,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);
     }
 }