From 87967b9f84100b86f492870ee3205486802f5ab2 Mon Sep 17 00:00:00 2001 From: Stefaan Dutry Date: Wed, 15 Nov 2017 13:54:20 +0100 Subject: [PATCH] changed Map iteration to use entrySet --- .../struts2/interceptor/CheckboxInterceptor.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/org/apache/struts2/interceptor/CheckboxInterceptor.java b/core/src/main/java/org/apache/struts2/interceptor/CheckboxInterceptor.java index c7942fb1c..3223f47bb 100644 --- a/core/src/main/java/org/apache/struts2/interceptor/CheckboxInterceptor.java +++ b/core/src/main/java/org/apache/struts2/interceptor/CheckboxInterceptor.java @@ -26,7 +26,9 @@ import org.apache.struts2.dispatcher.Parameter; import org.apache.struts2.dispatcher.HttpParameters; import java.util.HashMap; +import java.util.HashSet; import java.util.Map; +import java.util.Set; /** * @@ -60,12 +62,14 @@ public class CheckboxInterceptor extends AbstractInterceptor { HttpParameters parameters = ai.getInvocationContext().getParameters(); Map extraParams = new HashMap<>(); - for (String name : parameters.keySet()) { + Set checkboxParameters = new HashSet<>(); + for (Map.Entry parameter : parameters.entrySet()) { + String name = parameter.getKey(); if (name.startsWith("__checkbox_")) { String checkboxName = name.substring("__checkbox_".length()); - Parameter value = parameters.get(name); - parameters = parameters.remove(name); + Parameter value = parameter.getValue(); + checkboxParameters.add(name); if (value.isMultiple()) { LOG.debug("Bypassing automatic checkbox detection due to multiple checkboxes of the same name: {}", name); continue; @@ -78,7 +82,7 @@ public class CheckboxInterceptor extends AbstractInterceptor { } } } - + parameters.remove(checkboxParameters); ai.getInvocationContext().getParameters().appendAll(extraParams);