This is an automated email from the ASF dual-hosted git repository.

kusal pushed a commit to branch WW-5340-subclassable
in repository https://gitbox.apache.org/repos/asf/struts.git

commit 276ede4c88f67b5e1d1182928301ceff12e6fcba
Author: Kusal Kithul-Godage <g...@kusal.io>
AuthorDate: Fri Oct 6 04:17:31 2023 +1100

    WW-5340 Add debug logging for rejected form fields
---
 .../multipart/JakartaMultiPartRequest.java         | 22 +++++++++-------------
 1 file changed, 9 insertions(+), 13 deletions(-)

diff --git 
a/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequest.java
 
b/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequest.java
index de5a3e968..8e4b60b5f 100644
--- 
a/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequest.java
+++ 
b/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequest.java
@@ -142,26 +142,22 @@ public class JakartaMultiPartRequest extends 
AbstractMultiPartRequest {
             }
 
             long size = item.getSize();
-            if (size == 0) {
-                values.add(StringUtils.EMPTY);
-            } else if (size > maxStringLength) {
+            if (size > maxStringLength) {
+                LOG.debug("Form field {} of size {} bytes exceeds limit of 
{}.", item.getFieldName(), size, maxStringLength);
                 String errorKey = 
"struts.messages.upload.error.parameter.too.long";
                 LocalizedMessage localizedMessage = new 
LocalizedMessage(this.getClass(), errorKey, null,
-                    new Object[]{item.getFieldName(), maxStringLength, size});
-
+                        new Object[]{item.getFieldName(), maxStringLength, 
size});
                 if (!errors.contains(localizedMessage)) {
                     errors.add(localizedMessage);
                 }
                 return;
-
-            } else if (charset != null) {
-                values.add(item.getString(charset));
+            }
+            if (size == 0) {
+                values.add(StringUtils.EMPTY);
+            } else if (charset == null) {
+                values.add(item.getString()); // WW-633
             } else {
-                // note: see https://issues.apache.org/jira/browse/WW-633
-                // basically, in some cases the charset may be null, so
-                // we're just going to try to "other" method (no idea if this
-                // will work)
-                values.add(item.getString());
+                values.add(item.getString(charset));
             }
             params.put(item.getFieldName(), values);
         } finally {

Reply via email to