This is an automated email from the ASF dual-hosted git repository.

cziegeler pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-api.git


The following commit(s) were added to refs/heads/master by this push:
     new 289dee6  SLING-12857 : Allow null value for servlet wrappers
289dee6 is described below

commit 289dee6ec56e5a548b34578b75165734d8da8971
Author: Carsten Ziegeler <[email protected]>
AuthorDate: Sat Jul 12 15:22:24 2025 +0200

    SLING-12857 : Allow null value for servlet wrappers
---
 .../api/wrappers/JakartaToJavaxRequestWrapper.java | 11 ++++++--
 .../wrappers/JakartaToJavaxResponseWrapper.java    | 29 ++++++++++++--------
 .../api/wrappers/JavaxToJakartaRequestWrapper.java | 11 ++++++--
 .../wrappers/JavaxToJakartaResponseWrapper.java    | 11 ++++++--
 .../apache/sling/api/wrappers/package-info.java    |  2 +-
 .../sling/api/wrappers/ServletWrappersTest.java}   | 32 ++++++++++++++++++++--
 6 files changed, 71 insertions(+), 25 deletions(-)

diff --git 
a/src/main/java/org/apache/sling/api/wrappers/JakartaToJavaxRequestWrapper.java 
b/src/main/java/org/apache/sling/api/wrappers/JakartaToJavaxRequestWrapper.java
index 65108c9..fc2ce8a 100644
--- 
a/src/main/java/org/apache/sling/api/wrappers/JakartaToJavaxRequestWrapper.java
+++ 
b/src/main/java/org/apache/sling/api/wrappers/JakartaToJavaxRequestWrapper.java
@@ -56,7 +56,10 @@ public class JakartaToJavaxRequestWrapper extends 
HttpServletRequestWrapper impl
      * @param request Jakarta Servlet API based request object
      * @return The wrapped request
      */
-    public static javax.servlet.ServletRequest toJavaxRequest(final 
ServletRequest request) {
+    public static @Nullable javax.servlet.ServletRequest 
toJavaxRequest(@Nullable final ServletRequest request) {
+        if (request == null) {
+            return null;
+        }
         if (request instanceof JavaxToJakartaRequestWrapper) {
             return ((JavaxToJakartaRequestWrapper) request).getRequest();
         }
@@ -69,11 +72,13 @@ public class JakartaToJavaxRequestWrapper extends 
HttpServletRequestWrapper impl
         return new ServletRequestWrapper(request);
     }
 
-    public static javax.servlet.http.HttpServletRequest toJavaxRequest(final 
HttpServletRequest request) {
+    public static @Nullable javax.servlet.http.HttpServletRequest 
toJavaxRequest(
+            @Nullable final HttpServletRequest request) {
         return (javax.servlet.http.HttpServletRequest) 
toJavaxRequest((ServletRequest) request);
     }
 
-    public static SlingHttpServletRequest toJavaxRequest(final 
SlingJakartaHttpServletRequest request) {
+    public static @Nullable SlingHttpServletRequest toJavaxRequest(
+            @Nullable final SlingJakartaHttpServletRequest request) {
         return (SlingHttpServletRequest) toJavaxRequest((ServletRequest) 
request);
     }
 
diff --git 
a/src/main/java/org/apache/sling/api/wrappers/JakartaToJavaxResponseWrapper.java
 
b/src/main/java/org/apache/sling/api/wrappers/JakartaToJavaxResponseWrapper.java
index c5303de..17bce54 100644
--- 
a/src/main/java/org/apache/sling/api/wrappers/JakartaToJavaxResponseWrapper.java
+++ 
b/src/main/java/org/apache/sling/api/wrappers/JakartaToJavaxResponseWrapper.java
@@ -39,25 +39,30 @@ public class JakartaToJavaxResponseWrapper extends 
HttpServletResponseWrapper im
      * @param Response Jakarta Servlet API based response object
      * @return The wrapped response
      */
-    public static javax.servlet.ServletResponse toJavaxResponse(final 
ServletResponse Response) {
-        if (Response instanceof JavaxToJakartaResponseWrapper) {
-            return ((JavaxToJakartaResponseWrapper) Response).getResponse();
+    public static @Nullable javax.servlet.ServletResponse 
toJavaxResponse(@Nullable final ServletResponse response) {
+        if (response == null) {
+            return null;
         }
-        if (Response instanceof SlingJakartaHttpServletResponse) {
-            return new 
JakartaToJavaxResponseWrapper((SlingJakartaHttpServletResponse) Response);
+        if (response instanceof JavaxToJakartaResponseWrapper) {
+            return ((JavaxToJakartaResponseWrapper) response).getResponse();
         }
-        if (Response instanceof HttpServletResponse) {
-            return new HttpServletResponseWrapper((HttpServletResponse) 
Response);
+        if (response instanceof SlingJakartaHttpServletResponse) {
+            return new 
JakartaToJavaxResponseWrapper((SlingJakartaHttpServletResponse) response);
         }
-        return new ServletResponseWrapper(Response);
+        if (response instanceof HttpServletResponse) {
+            return new HttpServletResponseWrapper((HttpServletResponse) 
response);
+        }
+        return new ServletResponseWrapper(response);
     }
 
-    public static javax.servlet.http.HttpServletResponse toJavaxResponse(final 
HttpServletResponse Response) {
-        return (javax.servlet.http.HttpServletResponse) 
toJavaxResponse((ServletResponse) Response);
+    public static @Nullable javax.servlet.http.HttpServletResponse 
toJavaxResponse(
+            @Nullable final HttpServletResponse response) {
+        return (javax.servlet.http.HttpServletResponse) 
toJavaxResponse((ServletResponse) response);
     }
 
-    public static SlingHttpServletResponse toJavaxResponse(final 
SlingJakartaHttpServletResponse Response) {
-        return (SlingHttpServletResponse) toJavaxResponse((ServletResponse) 
Response);
+    public static @Nullable SlingHttpServletResponse toJavaxResponse(
+            @Nullable final SlingJakartaHttpServletResponse response) {
+        return (SlingHttpServletResponse) toJavaxResponse((ServletResponse) 
response);
     }
 
     private final SlingJakartaHttpServletResponse wrappedResponse;
diff --git 
a/src/main/java/org/apache/sling/api/wrappers/JavaxToJakartaRequestWrapper.java 
b/src/main/java/org/apache/sling/api/wrappers/JavaxToJakartaRequestWrapper.java
index 0aca665..1b9ff92 100644
--- 
a/src/main/java/org/apache/sling/api/wrappers/JavaxToJakartaRequestWrapper.java
+++ 
b/src/main/java/org/apache/sling/api/wrappers/JavaxToJakartaRequestWrapper.java
@@ -55,7 +55,10 @@ public class JavaxToJakartaRequestWrapper extends 
HttpServletRequestWrapper impl
      * @param request The request object
      * @return The wrapped request object
      */
-    public static ServletRequest toJakartaRequest(final 
javax.servlet.ServletRequest request) {
+    public static @Nullable ServletRequest toJakartaRequest(@Nullable final 
javax.servlet.ServletRequest request) {
+        if (request == null) {
+            return null;
+        }
         if (request instanceof JakartaToJavaxRequestWrapper) {
             return ((JakartaToJavaxRequestWrapper) request).getRequest();
         }
@@ -68,11 +71,13 @@ public class JavaxToJakartaRequestWrapper extends 
HttpServletRequestWrapper impl
         return new ServletRequestWrapper(request);
     }
 
-    public static HttpServletRequest toJakartaRequest(final 
javax.servlet.http.HttpServletRequest request) {
+    public static @Nullable HttpServletRequest toJakartaRequest(
+            @Nullable final javax.servlet.http.HttpServletRequest request) {
         return (HttpServletRequest) 
toJakartaRequest((javax.servlet.ServletRequest) request);
     }
 
-    public static SlingJakartaHttpServletRequest toJakartaRequest(final 
SlingHttpServletRequest request) {
+    public static @Nullable SlingJakartaHttpServletRequest toJakartaRequest(
+            @Nullable final SlingHttpServletRequest request) {
         return (SlingJakartaHttpServletRequest) 
toJakartaRequest((javax.servlet.ServletRequest) request);
     }
 
diff --git 
a/src/main/java/org/apache/sling/api/wrappers/JavaxToJakartaResponseWrapper.java
 
b/src/main/java/org/apache/sling/api/wrappers/JavaxToJakartaResponseWrapper.java
index 242bc9e..4dd279d 100644
--- 
a/src/main/java/org/apache/sling/api/wrappers/JavaxToJakartaResponseWrapper.java
+++ 
b/src/main/java/org/apache/sling/api/wrappers/JavaxToJakartaResponseWrapper.java
@@ -40,7 +40,10 @@ public class JavaxToJakartaResponseWrapper extends 
HttpServletResponseWrapper
      * @param response The response object
      * @return The wrapped response object
      */
-    public static ServletResponse toJakartaResponse(final 
javax.servlet.ServletResponse response) {
+    public static @Nullable ServletResponse toJakartaResponse(@Nullable final 
javax.servlet.ServletResponse response) {
+        if (response == null) {
+            return null;
+        }
         if (response instanceof JakartaToJavaxResponseWrapper) {
             return ((JakartaToJavaxResponseWrapper) response).getResponse();
         }
@@ -53,11 +56,13 @@ public class JavaxToJakartaResponseWrapper extends 
HttpServletResponseWrapper
         return new ServletResponseWrapper(response);
     }
 
-    public static HttpServletResponse toJakartaResponse(final 
javax.servlet.http.HttpServletResponse response) {
+    public static @Nullable HttpServletResponse toJakartaResponse(
+            @Nullable final javax.servlet.http.HttpServletResponse response) {
         return (HttpServletResponse) 
toJakartaResponse((javax.servlet.ServletResponse) response);
     }
 
-    public static SlingJakartaHttpServletResponse toJakartaResponse(final 
SlingHttpServletResponse response) {
+    public static @Nullable SlingJakartaHttpServletResponse toJakartaResponse(
+            @Nullable final SlingHttpServletResponse response) {
         return (SlingJakartaHttpServletResponse) 
toJakartaResponse((javax.servlet.ServletResponse) response);
     }
 
diff --git a/src/main/java/org/apache/sling/api/wrappers/package-info.java 
b/src/main/java/org/apache/sling/api/wrappers/package-info.java
index 162f8cf..65cd9d1 100644
--- a/src/main/java/org/apache/sling/api/wrappers/package-info.java
+++ b/src/main/java/org/apache/sling/api/wrappers/package-info.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-@Version("2.9.0")
+@Version("2.10.0")
 package org.apache.sling.api.wrappers;
 
 import org.osgi.annotation.versioning.Version;
diff --git a/src/main/java/org/apache/sling/api/wrappers/package-info.java 
b/src/test/java/org/apache/sling/api/wrappers/ServletWrappersTest.java
similarity index 51%
copy from src/main/java/org/apache/sling/api/wrappers/package-info.java
copy to src/test/java/org/apache/sling/api/wrappers/ServletWrappersTest.java
index 162f8cf..742bf40 100644
--- a/src/main/java/org/apache/sling/api/wrappers/package-info.java
+++ b/src/test/java/org/apache/sling/api/wrappers/ServletWrappersTest.java
@@ -16,8 +16,34 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
-@Version("2.9.0")
 package org.apache.sling.api.wrappers;
 
-import org.osgi.annotation.versioning.Version;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+/**
+ * Test related to some of the servlet wrappers in the Sling API.
+ */
+public class ServletWrappersTest {
+
+    @Test
+    public void testJakartaRequestWrappingWithNull() {
+        assertEquals(null, JakartaToJavaxRequestWrapper.toJavaxRequest(null));
+    }
+
+    @Test
+    public void testJakartaResponseWrappingWithNull() {
+        assertEquals(null, 
JakartaToJavaxResponseWrapper.toJavaxResponse(null));
+    }
+
+    @Test
+    public void testJavaxRequestWrappingWithNull() {
+        assertEquals(null, 
JavaxToJakartaRequestWrapper.toJakartaRequest(null));
+    }
+
+    @Test
+    public void testJavaxResponseWrappingWithNull() {
+        assertEquals(null, 
JavaxToJakartaResponseWrapper.toJakartaResponse(null));
+    }
+}

Reply via email to