[
https://issues.apache.org/jira/browse/WW-5088?focusedWorklogId=480652&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-480652
]
ASF GitHub Bot logged work on WW-5088:
--------------------------------------
Author: ASF GitHub Bot
Created on: 09/Sep/20 07:32
Start Date: 09/Sep/20 07:32
Worklog Time Spent: 10m
Work Description: gregh3269 commented on pull request #435:
URL: https://github.com/apache/struts/pull/435#issuecomment-689366835
I did consider a struts.messages.error.file.empty, but the patch was more
related to the incorrect message rather than the semantics of what
JakartaMultiPartRequest does, there maybe other reasons for the null
storeLocation if/IOException.
From the snip the logging is odd as the storeLocation is null for an empty
file (I have enctype="multipart/form-data" for the upload form) so never gets
to the IOException. There may be other implementations?
@lukaszlenart For the PR on 2.5.x I do not have any notes on how to do this
:-(
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
Issue Time Tracking
-------------------
Worklog Id: (was: 480652)
Time Spent: 40m (was: 0.5h)
> Empty file upload gives wrong error message
> -------------------------------------------
>
> Key: WW-5088
> URL: https://issues.apache.org/jira/browse/WW-5088
> Project: Struts 2
> Issue Type: Bug
> Components: Core Interceptors
> Affects Versions: 2.5.22
> Reporter: Greg Huber
> Priority: Minor
> Fix For: 2.6
>
> Time Spent: 40m
> Remaining Estimate: 0h
>
> On an empty file upload the storeLocation is null, so adds a file new
> StrutsUploadedFile(null)
> JakartaMultiPartRequest
> {code:java}
> List fileList = new ArrayList<>(items.size());
> for (FileItem fileItem : items) {
> File storeLocation = ((DiskFileItem) fileItem).getStoreLocation();
> if (fileItem.isInMemory() && storeLocation != null &&
> !storeLocation.exists()) {
> try {
> storeLocation.createNewFile();
> } catch (IOException e) {
> LOG.error("Cannot write uploaded empty file to disk: {}",
> storeLocation.getAbsolutePath(), e);
> }
> }
> fileList.add(new StrutsUploadedFile(storeLocation));
> }
> {code}
> The FileUploadInterceptor checks for a null file but not null content from
> the new StrutsUploadedFile(null).
> eg for an empty file main.js
> Error message should be:
> Error uploading: main.js
> but gives:
> Error setting expression 'uploadedFiles' with value
> ['org.apache.struts2.dispatcher.multipart.StrutsUploadedFile@202585bc', ]
> Error setting expression 'uploadedFiles' with value
> ['org.apache.struts2.dispatcher.multipart.StrutsUploadedFile@49553150', ]
--
This message was sent by Atlassian Jira
(v8.3.4#803005)