Author: jochen
Date: Sat Jan 17 17:40:13 2009
New Revision: 735370
URL: http://svn.apache.org/viewvc?rev=735370&view=rev
Log:
PR: FILEUPLOAD-160
Submitted-By: Stepan Koltsov <[email protected]>
Temporary files have not been deleted, if an error
occurred in FileUploadBase.parseRequest.
Modified:
commons/proper/fileupload/trunk/pom.xml
commons/proper/fileupload/trunk/src/changes/changes.xml
commons/proper/fileupload/trunk/src/java/org/apache/commons/fileupload/FileUploadBase.java
Modified: commons/proper/fileupload/trunk/pom.xml
URL:
http://svn.apache.org/viewvc/commons/proper/fileupload/trunk/pom.xml?rev=735370&r1=735369&r2=735370&view=diff
==============================================================================
--- commons/proper/fileupload/trunk/pom.xml (original)
+++ commons/proper/fileupload/trunk/pom.xml Sat Jan 17 17:40:13 2009
@@ -101,6 +101,10 @@
<email>[email protected]</email>
</contributor>
<contributor>
+ <name>Stepan Koltsov</name>
+ <email>[email protected]</email>
+ </contributor>
+ <contributor>
<name>Michael Macaluso</name>
<email>[email protected]</email>
</contributor>
Modified: commons/proper/fileupload/trunk/src/changes/changes.xml
URL:
http://svn.apache.org/viewvc/commons/proper/fileupload/trunk/src/changes/changes.xml?rev=735370&r1=735369&r2=735370&view=diff
==============================================================================
--- commons/proper/fileupload/trunk/src/changes/changes.xml (original)
+++ commons/proper/fileupload/trunk/src/changes/changes.xml Sat Jan 17 17:40:13
2009
@@ -42,7 +42,13 @@
<body>
<release version="1.3-SNAPSHOT" date="Not yet released">
+ <action dev="jochen" type="fix" issue="FILEUPLOAD-160"
+ due-to="Stepan Koltsov" due-to-email="[email protected]">
+ Temporary files have not been deleted, if an error
+ occurred in FileUploadBase.parseRequest();
+ </action>
</release>
+
<release version="1.2.1" date="2008-01-18">
<action dev="jochen" type="fix">
Upgrade to commons-io-1.4-SNAPSHOT, in order to use the new
Modified:
commons/proper/fileupload/trunk/src/java/org/apache/commons/fileupload/FileUploadBase.java
URL:
http://svn.apache.org/viewvc/commons/proper/fileupload/trunk/src/java/org/apache/commons/fileupload/FileUploadBase.java?rev=735370&r1=735369&r2=735370&view=diff
==============================================================================
---
commons/proper/fileupload/trunk/src/java/org/apache/commons/fileupload/FileUploadBase.java
(original)
+++
commons/proper/fileupload/trunk/src/java/org/apache/commons/fileupload/FileUploadBase.java
Sat Jan 17 17:40:13 2009
@@ -345,9 +345,10 @@
*/
public List /* FileItem */ parseRequest(RequestContext ctx)
throws FileUploadException {
+ List items = new ArrayList();
+ boolean successful = false;
try {
FileItemIterator iter = getItemIterator(ctx);
- List items = new ArrayList();
FileItemFactory fac = getFileItemFactory();
if (fac == null) {
throw new NullPointerException(
@@ -358,6 +359,7 @@
FileItem fileItem = fac.createItem(item.getFieldName(),
item.getContentType(), item.isFormField(),
item.getName());
+ items.add(fileItem);
try {
Streams.copy(item.openStream(), fileItem.getOutputStream(),
true);
@@ -372,13 +374,24 @@
final FileItemHeaders fih = item.getHeaders();
((FileItemHeadersSupport) fileItem).setHeaders(fih);
}
- items.add(fileItem);
}
+ successful = true;
return items;
} catch (FileUploadIOException e) {
throw (FileUploadException) e.getCause();
} catch (IOException e) {
throw new FileUploadException(e.getMessage(), e);
+ } finally {
+ if (!successful) {
+ for (Iterator iterator = items.iterator();
iterator.hasNext();) {
+ FileItem fileItem = (FileItem) iterator.next();
+ try {
+ fileItem.delete();
+ } catch (Throwable e) {
+ // ignore it
+ }
+ }
+ }
}
}