nikos dimitrakas created WW-5474: ------------------------------------ Summary: struts.multipart.maxFiles does not work as described/expected Key: WW-5474 URL: https://issues.apache.org/jira/browse/WW-5474 Project: Struts 2 Issue Type: Bug Affects Versions: 6.3.0 Reporter: nikos dimitrakas
According to the documentation the property struts.multipart.maxFiles (which defaults to 256) is supposed to set a limit to how many files a multi-part form submission may include. But in reality, the specified value sets a limit to how many parameter values the form may submit, including strings, integers, booleans (from all input fields, checkboxes, hiddens, etc). The problem is in the method JakartaMultiPartRequest.parsePrequest (part of struts) when in the last line it calls upload.parseRequest which is in FileUploadBase (part of commons-fileupload). That methods tries to find the FileItems from the provided RequestContext, but considers every parameter value to be a FileItem and then throws a new FileCountLimitExceededException when the number of parameter values (of any type) reaches the fileCountMax. I am not sure if the problem is in struts or in fileupload. Maybe the provided RequestContext should somehow only include the file parameters so that only they get counted. Or perhaps the documentation should be changed to clarify that struts.multipart.maxFiles specifies the maximum number of parameter values a multipart form may include. I also found the issue [FILEUPLOAD-351|https://issues.apache.org/jira/browse/FILEUPLOAD-351] that seems to point out the confusing behaviour. But until the issue has been resolved in fileupload, struts behaves contrary to its own documentation at [https://struts.apache.org/core-developers/file-upload] -- This message was sent by Atlassian Jira (v8.20.10#820010)