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.
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 @@
     <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 @@
                  * 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 @@
         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);
     }
 }