This is an automated email from the ASF dual-hosted git repository.
lukaszlenart pushed a commit to branch feature/WW-5371-modern-upload
in repository https://gitbox.apache.org/repos/asf/struts.git
The following commit(s) were added to refs/heads/feature/WW-5371-modern-upload
by this push:
new 64c13cc74 WW-5370 Simplifies error handling logic
64c13cc74 is described below
commit 64c13cc746082de62d8c1fe95879491c6cb3094d
Author: Lukasz Lenart
AuthorDate: Fri Dec 15 09:38:43 2023 +0100
WW-5370 Simplifies error handling logic
---
.../multipart/JakartaStreamMultiPartRequest.java | 1 -
.../interceptor/AbstractFileUploadInterceptor.java | 74 --
.../apache/struts2/struts-messages_en.properties | 27 +++-
.../ActionFileUploadInterceptorTest.java | 12 ++--
.../interceptor/FileUploadInterceptorTest.java | 12 ++--
5 files changed, 83 insertions(+), 43 deletions(-)
diff --git
a/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaStreamMultiPartRequest.java
b/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaStreamMultiPartRequest.java
index 763b5d634..428ae112f 100644
---
a/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaStreamMultiPartRequest.java
+++
b/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaStreamMultiPartRequest.java
@@ -44,7 +44,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
-import java.util.stream.Collectors;
/**
* Multi-part form data request adapter for Jakarta Commons FileUpload package
that
diff --git
a/core/src/main/java/org/apache/struts2/interceptor/AbstractFileUploadInterceptor.java
b/core/src/main/java/org/apache/struts2/interceptor/AbstractFileUploadInterceptor.java
index c8da384d2..1113f4491 100644
---
a/core/src/main/java/org/apache/struts2/interceptor/AbstractFileUploadInterceptor.java
+++
b/core/src/main/java/org/apache/struts2/interceptor/AbstractFileUploadInterceptor.java
@@ -39,6 +39,7 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Set;
public abstract class AbstractFileUploadInterceptor extends
AbstractInterceptor {
@@ -53,9 +54,9 @@ public abstract class AbstractFileUploadInterceptor extends
AbstractInterceptor
public static final String
STRUTS_MESSAGES_ERROR_CONTENT_TYPE_NOT_ALLOWED_KEY =
"struts.messages.error.content.type.not.allowed";
public static final String
STRUTS_MESSAGES_ERROR_FILE_EXTENSION_NOT_ALLOWED_KEY =
"struts.messages.error.file.extension.not.allowed";
-protected Long maximumSize;
-protected Set allowedTypesSet = Collections.emptySet();
-protected Set allowedExtensionsSet = Collections.emptySet();
+private Long maximumSize;
+private Set allowedTypesSet = Collections.emptySet();
+private Set allowedExtensionsSet = Collections.emptySet();
private ContentTypeMatcher matcher;
private Container container;
@@ -100,15 +101,15 @@ public abstract class AbstractFileUploadInterceptor
extends AbstractInterceptor
/**
* Override for added functionality. Checks if the proposed file is
acceptable based on contentType and size.
*
- * @param action - uploading action for message retrieval.
- * @param file- proposed upload file.
- * @param filename- name of the file.
- * @param contentType - contentType of the file.
- * @param inputName - inputName of the file.
+ * @param action - uploading action for message retrieval.
+ * @param file - proposed upload file.
+ * @param originalFilename - name of the file.
+ * @param contentType - contentType of the file.
+ * @param inputName- inputName of the file.
* @return true if the proposed file is acceptable by contentType and size.
*/
-protected boolean acceptFile(Object action, UploadedFile file, String
filename, String contentType, String inputName) {
-boolean fileIsAcceptable = false;
+protected boolean acceptFile(Object action, UploadedFile file, String
originalFilename, String contentType, String inputName) {
+Set errorMessages = new HashSet<>();
ValidationAware validation = null;
if (action instanceof ValidationAware) {
@@ -122,35 +123,42 @@ public abstract class AbstractFileUploadInterceptor
extends AbstractInterceptor
validation.addFieldError(inputName, errMsg);
}
LOG.warn(errMsg);
-} else if (file.getContent() == null) {
-String errMsg = getTextMessage(action,
STRUTS_MESSAGES_ERROR_UPLOADING_KEY, new String[]{filename});
-if (validation != null) {
-validation.addFieldError(inputName, errMsg);
-}
+return false;
+}
+
+if (file.getContent() == null) {
+String errMs