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")
