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); } }