[ 
https://issues.apache.org/struts/browse/WW-1549?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Lukasz Racon updated WW-1549:
-----------------------------

    Affects Version/s:     (was: 2.0.2)
                       2.1.0
                       2.0.10

By adding upload.setSizeMax to JakartaMultiPartRequest, the file upload 
interceptor max size validation has been disabled. Furthermore, whenever there 
is a single file above the allowed size none of the request parameters are set 
on the action This happens due to 
upload.parseRequest(createRequestContext(servletRequest)) which throws 
exception (o.a.c.fileupload.FileItemIteratorImpl checks max size). 
If the application requires the parameters it will fail. 

There is also slight confusion and disconnect between:
struts.multipart.maxSize and fileInterceptor.maxsize

If you upload file that exceeds allowed struts.multipart.maxSize 
fileInterceptor will never kick in. 

IMHO file upload interceptor should be responsible for max size validation 
(esp. that it reports errors as field errors and not as action errors). 
Furthermore, we should drop 'struts.multipart.maxSize' since is confusing along 
with fileInterceptor.maxsize, also fileInterceptor.maxsize should get a new 
default max size. The other option is to use struts.multipart.maxSize to set 
fileInterceptor.maxsize.

This line should be removed so file interceptor can validate files:
------
Index: 
src/main/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequest.java
===================================================================
--- 
src/main/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequest.java
  (revision 560614)
+++ 
src/main/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequest.java
  (working copy)
@@ -86,7 +86,6 @@
         // Parse the request
         try {
             ServletFileUpload upload = new ServletFileUpload(fac);
-            upload.setSizeMax(maxSize);
             List items = 
upload.parseRequest(createRequestContext(servletRequest));

--------------


> File upload with JakartaMultipartRequest fails if file size less than 
> DiskFileItem.sizeThreshold
> ------------------------------------------------------------------------------------------------
>
>                 Key: WW-1549
>                 URL: https://issues.apache.org/struts/browse/WW-1549
>             Project: Struts 2
>          Issue Type: Bug
>          Components: Interceptors
>    Affects Versions: 2.0.10, 2.1.0
>         Environment: Win XP, J2SE 1.5.0_08, struts-core-2.0.2-SNAPSHOT (Dec 
> 07)
>            Reporter: Tomas Carlsson
>            Assignee: Don Brown
>            Priority: Minor
>             Fix For: 2.0.2
>
>         Attachments: s2_28850.patch.gz, s2_28850_v2.patch
>
>
> commons-fileupload DiskFileItem will not write any data to the file system 
> until its sizeThreshold has been reached. This is not considered in 
> JakartaMultipartRequest. It should check this when getting the File object 
> that is later injected to an Action.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to