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