conceptual error throwing FileUploadException when upload size or file size 
exeeds limits
-----------------------------------------------------------------------------------------

                 Key: FILEUPLOAD-194
                 URL: https://issues.apache.org/jira/browse/FILEUPLOAD-194
             Project: Commons FileUpload
          Issue Type: Bug
    Affects Versions: 1.2.2, 1.2.1
            Reporter: Hanspeter Dünnenberger
         Attachments: my-changes.patch

When any size limits exceed, immediately a 
FileUploadBase.SizeLimitExceededException or 
FileUploadBase.FileSizeLimitExceededException is thrown and parsing of the 
multipart request terminates without providing request parameters for further 
processing.

This basically makes it impossible for any web application to handle size limit 
exceeded cases gracefully. 

My proposal is that request parsing should always complete to deliver the 
request parameters. Size limit exceeded cases/exceptions might be collected for 
later retrieval, FileSizeLimitExeededException should be mapped to the FileItem 
to allow some validation on the FileItem on application level. This would allow 
to mark upload input fields as erronous if the uploaded file was too big. 

Actually I made a patch for that (see attachment). With this patch, 
commons-fileupload always completes request parsing in case of size limit 
exceedings and only after complete parsing will throw an exception if one was 
detected. Using FileUploadBase.setThrowUploadException(false) no exceptions 
will be thrown (except more critical ones like invalid stream format).
After request processing the collected FileUploadExceptions might be retrieved 
using FileUploadBase.getFileUploadExceptions().

The patch shows the concept, but further improvement might be necessary.


--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to