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

Reply via email to