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
The following commit(s) were added to refs/heads/feature/http-params-case by this push: new 102e040e0 WW-5370 Adds proper logic to handle null 102e040e0 is described below commit 102e040e092916163640deddf1114a3e28fcb429 Author: Lukasz Lenart <lukaszlen...@apache.org> AuthorDate: Tue Dec 12 10:00:31 2023 +0100 WW-5370 Adds proper logic to handle null --- .../java/org/apache/struts2/dispatcher/HttpParameters.java | 8 ++++---- .../main/java/org/apache/struts2/dispatcher/Parameter.java | 13 +++++++++++++ .../org/apache/struts2/dispatcher/HttpParametersTest.java | 3 +-- 3 files changed, 18 insertions(+), 6 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 a2d4675e0..54f465eea 100644 --- a/core/src/main/java/org/apache/struts2/dispatcher/HttpParameters.java +++ b/core/src/main/java/org/apache/struts2/dispatcher/HttpParameters.java @@ -111,11 +111,11 @@ public class HttpParameters implements Map<String, Parameter> { @Override public Parameter get(Object key) { - if (key != null) { - return parameters.get(String.valueOf(key)); - } else { - return null; + if (key == null) { + return new Parameter.Empty("null"); } + Parameter val = parameters.get(key.toString()); + return val != null ? val : new Parameter.Empty(key.toString()); } @Override diff --git a/core/src/main/java/org/apache/struts2/dispatcher/Parameter.java b/core/src/main/java/org/apache/struts2/dispatcher/Parameter.java index b8a227083..edae6c3a1 100644 --- a/core/src/main/java/org/apache/struts2/dispatcher/Parameter.java +++ b/core/src/main/java/org/apache/struts2/dispatcher/Parameter.java @@ -166,6 +166,19 @@ public interface Parameter { "name='" + name + '\'' + '}'; } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof Empty)) return false; + Empty empty = (Empty) o; + return Objects.equals(name, empty.name); + } + + @Override + public int hashCode() { + return Objects.hash(name); + } } } 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 b8b0a3038..aea4a7b00 100644 --- a/core/src/test/java/org/apache/struts2/dispatcher/HttpParametersTest.java +++ b/core/src/test/java/org/apache/struts2/dispatcher/HttpParametersTest.java @@ -24,7 +24,6 @@ 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 { @@ -51,7 +50,7 @@ public class HttpParametersTest { // then assertFalse(params.remove("Param1").contains("param1")); - assertNull(params.get("param1")); + assertEquals(new Parameter.Empty("param1"), params.get("param1")); } @Test