On Sat, Jan 17, 2009 at 8:40 PM, <joc...@apache.org> wrote: > 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 <y...@mx1.ru> > 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 > <snip/> > > 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 > + }
Catch the bits that makes sense to ignore here? -Rahul --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org