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

jsedding pushed a commit to branch resolver-2.x-backports
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-servlets-resolver.git

commit e131b06b0119538b9fafc7ab3e1da40dfcb2d531
Author: Carsten Ziegeler <[email protected]>
AuthorDate: Sat Apr 19 13:15:01 2025 +0200

    SLING-12752 : Support Jakarta Servlet 6.1
    
    (cherry picked from commit 84de0da5b9608b1207a1b99daba445b93b7cb10b)
---
 .../servlets/resolver/internal/SlingServletResolver.java   | 14 +++++++++++++-
 .../servlets/resolver/it/ServletResolverTestSupport.java   |  2 +-
 2 files changed, 14 insertions(+), 2 deletions(-)

diff --git 
a/src/main/java/org/apache/sling/servlets/resolver/internal/SlingServletResolver.java
 
b/src/main/java/org/apache/sling/servlets/resolver/internal/SlingServletResolver.java
index f3f9c63..ee0f1eb 100644
--- 
a/src/main/java/org/apache/sling/servlets/resolver/internal/SlingServletResolver.java
+++ 
b/src/main/java/org/apache/sling/servlets/resolver/internal/SlingServletResolver.java
@@ -103,6 +103,10 @@ public class SlingServletResolver implements 
ServletResolver, SlingRequestListen
 
     private static final String SERVICE_USER = "scripts";
 
+    private static final String JAVAX_ERROR_METHOD = 
"jakarta.servlet.error.method";
+
+    private static final String JAVAX_ERROR_QUERY_STRING = 
"jakarta.servlet.error..query_string";
+
     /** Servlet resolver logger */
     public static final Logger LOGGER = 
LoggerFactory.getLogger(SlingServletResolver.class);
 
@@ -329,8 +333,12 @@ public class SlingServletResolver implements 
ServletResolver, SlingRequestListen
             }
 
             // set the message properties
-            request.setAttribute(ERROR_STATUS, Integer.valueOf(status));
+            request.setAttribute(ERROR_STATUS, status);
             request.setAttribute(ERROR_MESSAGE, message);
+            request.setAttribute(JAVAX_ERROR_METHOD, request.getMethod());
+            if (request.getQueryString() != null) {
+                request.setAttribute(JAVAX_ERROR_QUERY_STRING, 
request.getQueryString());
+            }
 
             // the servlet name for a sendError handling is still stored
             // as the request attribute
@@ -398,6 +406,10 @@ public class SlingServletResolver implements 
ServletResolver, SlingRequestListen
             request.setAttribute(SlingConstants.ERROR_EXCEPTION, throwable);
             request.setAttribute(SlingConstants.ERROR_EXCEPTION_TYPE, 
throwable.getClass());
             request.setAttribute(SlingConstants.ERROR_MESSAGE, 
throwable.getMessage());
+            request.setAttribute(JAVAX_ERROR_METHOD, request.getMethod());
+            if (request.getQueryString() != null) {
+                request.setAttribute(JAVAX_ERROR_QUERY_STRING, 
request.getQueryString());
+            }
 
             // log a track entry after resolution before calling the handler
             progressTracker.logTimer(timerName, "Using handler {0}", 
RequestUtil.getServletName(servlet));
diff --git 
a/src/test/java/org/apache/sling/servlets/resolver/it/ServletResolverTestSupport.java
 
b/src/test/java/org/apache/sling/servlets/resolver/it/ServletResolverTestSupport.java
index 22303f3..9313eb3 100644
--- 
a/src/test/java/org/apache/sling/servlets/resolver/it/ServletResolverTestSupport.java
+++ 
b/src/test/java/org/apache/sling/servlets/resolver/it/ServletResolverTestSupport.java
@@ -100,7 +100,7 @@ public class ServletResolverTestSupport extends TestSupport 
{
                 mavenBundle()
                         .groupId("org.apache.felix")
                         .artifactId("org.apache.felix.http.servlet-api")
-                        .version("3.0.0"),
+                        .version("6.1.0"),
                 mavenBundle()
                         .groupId("org.apache.felix")
                         .artifactId("org.apache.felix.http.jetty12")

Reply via email to