[ 
https://issues.apache.org/jira/browse/WW-5088?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17213143#comment-17213143
 ] 

Pierre-Yves Soblet commented on WW-5088:
----------------------------------------

I don't think the issue was only an irrelevant error message.
The file upload should work even if the file is empty.
A similar issue was fixed in the past : 
https://issues.apache.org/jira/browse/WW-3562


By default, Struts 2.5.22 depends on commons-fileupload:1.4.

If I force an older version:

{code:xml}
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3.3</version>
        </dependency>
{code}
 
The upload of an empty file works properly.

Maybe this is related to this commons-fileupload bug: 
https://issues.apache.org/jira/browse/FILEUPLOAD-295

> 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: 50m
>  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)

Reply via email to