This is an automated email from the ASF dual-hosted git repository. rombert pushed a commit to branch issue/SLING-13071 in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-engine.git
commit 8ccfda9fdb8ea9d243a9e234328a6a7654a191f8 Author: Robert Munteanu <[email protected]> AuthorDate: Fri Jan 23 17:43:49 2026 +0100 SLING-13071 - HTL use objects that adapt from the javax SlingHttpServletRequest cannot be instantiated a Jakarta context Implement a fallback for adapting from the legacy javax servlet requerst when adapting from the jakarta request fails. Adapters are normally expected to be registered for the legacy javax.servlet-based APIs and we need the adaptions to keep working for backwards compatibility. --- .../org/apache/sling/engine/impl/SlingRequestProcessorImpl.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/apache/sling/engine/impl/SlingRequestProcessorImpl.java b/src/main/java/org/apache/sling/engine/impl/SlingRequestProcessorImpl.java index ca3eaf5..9d7836a 100644 --- a/src/main/java/org/apache/sling/engine/impl/SlingRequestProcessorImpl.java +++ b/src/main/java/org/apache/sling/engine/impl/SlingRequestProcessorImpl.java @@ -40,6 +40,7 @@ import jakarta.servlet.ServletResponse; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import org.apache.sling.api.SlingException; +import org.apache.sling.api.SlingHttpServletRequest; import org.apache.sling.api.SlingJakartaHttpServletRequest; import org.apache.sling.api.SlingJakartaHttpServletResponse; import org.apache.sling.api.SlingServletException; @@ -51,6 +52,7 @@ import org.apache.sling.api.resource.ResourceResolver; import org.apache.sling.api.servlets.ErrorHandler; import org.apache.sling.api.servlets.JakartaErrorHandler; import org.apache.sling.api.servlets.ServletResolver; +import org.apache.sling.api.wrappers.JakartaToJavaxRequestWrapper; import org.apache.sling.api.wrappers.JavaxToJakartaRequestWrapper; import org.apache.sling.api.wrappers.JavaxToJakartaResponseWrapper; import org.apache.sling.api.wrappers.SlingJakartaHttpServletResponseWrapper; @@ -205,7 +207,12 @@ public class SlingRequestProcessorImpl implements SlingRequestProcessor { public <Type> Type adaptTo(Object object, Class<Type> type) { final AdapterManager adapterManager = this.adapterManager; if (adapterManager != null) { - return adapterManager.getAdapter(object, type); + Type adapted = adapterManager.getAdapter(object, type); + if (adapted == null && object instanceof SlingJakartaHttpServletRequest request) { + // try adapting the legacy object + SlingHttpServletRequest legacy = new JakartaToJavaxRequestWrapper(request); + return adapterManager.getAdapter(legacy, type); + } } // no adapter manager, nothing to adapt to
