From 5c4b9cdf0b7301d165c9e6d18815d90e781b359c Mon Sep 17 00:00:00 2001 From: xxx <1138069338@qq.com> Date: Mon, 20 Apr 2026 02:32:33 +1000 Subject: [PATCH 1/2] introduce private method to remove clones --- .../multipart/AbstractMultiPartRequest.java | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/core/src/main/java/org/apache/struts2/dispatcher/multipart/AbstractMultiPartRequest.java b/core/src/main/java/org/apache/struts2/dispatcher/multipart/AbstractMultiPartRequest.java index 0a9966556b..5d4b7274dd 100644 --- a/core/src/main/java/org/apache/struts2/dispatcher/multipart/AbstractMultiPartRequest.java +++ b/core/src/main/java/org/apache/struts2/dispatcher/multipart/AbstractMultiPartRequest.java @@ -241,9 +241,7 @@ protected boolean exceedsMaxStringLength(String fieldName, String fieldValue) { LocalizedMessage localizedMessage = new LocalizedMessage(this.getClass(), STRUTS_MESSAGES_UPLOAD_ERROR_PARAMETER_TOO_LONG_KEY, null, new Object[]{fieldName, maxStringLength, fieldValue.length()}); - if (!errors.contains(localizedMessage)) { - errors.add(localizedMessage); - } + ErrorIfAbsent(localizedMessage); return true; } return false; @@ -278,15 +276,17 @@ public void parse(HttpServletRequest request, String saveDir) throws IOException } LocalizedMessage errorMessage = buildErrorMessage(exClass, e.getMessage(), args); - if (!errors.contains(errorMessage)) { - errors.add(errorMessage); - } + ErrorIfAbsent(errorMessage); } catch (IOException e) { LOG.warn("Unable to parse request", e); LocalizedMessage errorMessage = buildErrorMessage(e.getClass(), e.getMessage(), new Object[]{}); - if (!errors.contains(errorMessage)) { - errors.add(errorMessage); - } + ErrorIfAbsent(errorMessage); + } + } + + private void ErrorIfAbsent(LocalizedMessage errorMessage) { + if (!errors.contains(errorMessage)) { + errors.add(errorMessage); } } @@ -449,9 +449,7 @@ protected boolean rejectEmptyFile(long fileSize, String fileName, String fieldNa "Empty files are not allowed", new Object[]{fileName, fieldName} ); - if (!errors.contains(errorMessage)) { - errors.add(errorMessage); - } + ErrorIfAbsent(errorMessage); return true; } return false; From 46dd12dbee8bfce90790146c3a0a97e60486ace0 Mon Sep 17 00:00:00 2001 From: aaaZayne <1138069338@qq.com> Date: Mon, 20 Apr 2026 14:42:07 +1000 Subject: [PATCH 2/2] Update naming --- .../dispatcher/multipart/AbstractMultiPartRequest.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/core/src/main/java/org/apache/struts2/dispatcher/multipart/AbstractMultiPartRequest.java b/core/src/main/java/org/apache/struts2/dispatcher/multipart/AbstractMultiPartRequest.java index 5d4b7274dd..3bb0d17d2f 100644 --- a/core/src/main/java/org/apache/struts2/dispatcher/multipart/AbstractMultiPartRequest.java +++ b/core/src/main/java/org/apache/struts2/dispatcher/multipart/AbstractMultiPartRequest.java @@ -241,7 +241,7 @@ protected boolean exceedsMaxStringLength(String fieldName, String fieldValue) { LocalizedMessage localizedMessage = new LocalizedMessage(this.getClass(), STRUTS_MESSAGES_UPLOAD_ERROR_PARAMETER_TOO_LONG_KEY, null, new Object[]{fieldName, maxStringLength, fieldValue.length()}); - ErrorIfAbsent(localizedMessage); + addErrorIfAbsent(localizedMessage); return true; } return false; @@ -276,15 +276,15 @@ public void parse(HttpServletRequest request, String saveDir) throws IOException } LocalizedMessage errorMessage = buildErrorMessage(exClass, e.getMessage(), args); - ErrorIfAbsent(errorMessage); + addErrorIfAbsent(errorMessage); } catch (IOException e) { LOG.warn("Unable to parse request", e); LocalizedMessage errorMessage = buildErrorMessage(e.getClass(), e.getMessage(), new Object[]{}); - ErrorIfAbsent(errorMessage); + addErrorIfAbsent(errorMessage); } } - private void ErrorIfAbsent(LocalizedMessage errorMessage) { + private void addErrorIfAbsent(LocalizedMessage errorMessage) { if (!errors.contains(errorMessage)) { errors.add(errorMessage); } @@ -449,7 +449,7 @@ protected boolean rejectEmptyFile(long fileSize, String fileName, String fieldNa "Empty files are not allowed", new Object[]{fileName, fieldName} ); - ErrorIfAbsent(errorMessage); + addErrorIfAbsent(errorMessage); return true; } return false;