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

Reply via email to