FILEUPLOAD-245 DiskFileItem.get() may not fully read the data

git-svn-id: https://svn.apache.org/repos/asf/commons/proper/fileupload/trunk@1568678 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index ec78342..a74b1ce 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -45,7 +45,8 @@
   <body>
     <release version="1.4" date="TBA" description=
 "TBA">
-      <action dev="sebb" type="update" due-to="Ville Skyttä">Make some MultipartStream private fields final</action>
+      <action issue="FILEUPLOAD-245" dev="sebb" type="fix">DiskFileItem.get() may not fully read the data</action>
+      <action issue="FILEUPLOAD-243" dev="sebb" type="update" due-to="Ville Skyttä">Make some MultipartStream private fields final</action>
     </release>
 
     <release version="1.3.1" description=
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 779e47b..192e065 100644
--- a/src/main/java/org/apache/commons/fileupload/disk/DiskFileItem.java
+++ b/src/main/java/org/apache/commons/fileupload/disk/DiskFileItem.java
@@ -312,7 +312,7 @@
 
         try {
             fis = new BufferedInputStream(new FileInputStream(dfos.getFile()));
-            fis.read(fileData);
+            IOUtils.readFully(fis, fileData);
         } catch (IOException e) {
             fileData = null;
         } finally {
@@ -681,9 +681,11 @@
         if (cachedContent != null) {
             output.write(cachedContent);
         } else {
+            new Throwable(dfosFile.toString()).printStackTrace();
             FileInputStream input = new FileInputStream(dfosFile);
             IOUtils.copy(input, output);
-            dfosFile.delete();
+            input.close();
+            System.out.println("deleted?"+dfosFile.delete()+" "+dfosFile);
             dfosFile = null;
         }
         output.close();