This is an automated email from the ASF dual-hosted git repository. lukaszlenart pushed a commit to branch feature/http-params-case in repository https://gitbox.apache.org/repos/asf/struts.git
commit 4eaab8a79d3674f4e519ca726f96fd7576180799 Author: Lukasz Lenart <lukaszlen...@apache.org> AuthorDate: Tue Dec 12 09:46:38 2023 +0100 WW-5370 Simplifies code --- .../java/org/apache/struts2/dispatcher/HttpParameters.java | 9 ++++----- .../org/apache/struts2/dispatcher/HttpParametersTest.java | 14 ++++++++++++++ 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/core/src/main/java/org/apache/struts2/dispatcher/HttpParameters.java b/core/src/main/java/org/apache/struts2/dispatcher/HttpParameters.java index e44f06273..a2d4675e0 100644 --- a/core/src/main/java/org/apache/struts2/dispatcher/HttpParameters.java +++ b/core/src/main/java/org/apache/struts2/dispatcher/HttpParameters.java @@ -49,7 +49,7 @@ public class HttpParameters implements Map<String, Parameter> { public HttpParameters remove(Set<String> paramsToRemove) { for (String paramName : paramsToRemove) { - parameters.entrySet().removeIf(p -> p.getKey().equalsIgnoreCase(paramName)); + parameters.remove(paramName); } return this; } @@ -85,7 +85,6 @@ public class HttpParameters implements Map<String, Parameter> { * @return a current instance of {@link HttpParameters} */ public HttpParameters appendAll(Map<String, Parameter> newParams) { - remove(newParams.keySet()); parameters.putAll(newParams); return this; } @@ -112,10 +111,10 @@ public class HttpParameters implements Map<String, Parameter> { @Override public Parameter get(Object key) { - if (key != null && contains(String.valueOf(key))) { - return parameters.get(key); + if (key != null) { + return parameters.get(String.valueOf(key)); } else { - return new Parameter.Empty(String.valueOf(key)); + return null; } } diff --git a/core/src/test/java/org/apache/struts2/dispatcher/HttpParametersTest.java b/core/src/test/java/org/apache/struts2/dispatcher/HttpParametersTest.java index 7c2efbc12..b8b0a3038 100644 --- a/core/src/test/java/org/apache/struts2/dispatcher/HttpParametersTest.java +++ b/core/src/test/java/org/apache/struts2/dispatcher/HttpParametersTest.java @@ -23,6 +23,8 @@ import org.junit.Test; import java.util.HashMap; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; public class HttpParametersTest { @@ -40,6 +42,18 @@ public class HttpParametersTest { assertEquals("value1", params.get("pAraM1").getValue()); } + @Test + public void shouldRemoveBeCaseInsensitive() { + // given + HttpParameters params = HttpParameters.create(new HashMap<String, Object>() {{ + put("param1", "value1"); + }}).build(); + + // then + assertFalse(params.remove("Param1").contains("param1")); + assertNull(params.get("param1")); + } + @Test public void shouldAppendSameParamsIgnoringCase() { // given