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

markt-asf pushed a commit to branch 11.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/11.0.x by this push:
     new 38bb809408 Fix back-port. 11.0.x and earlier build path differently.
38bb809408 is described below

commit 38bb80940863d9c8dcebe053808ea1c186afd2da
Author: Mark Thomas <[email protected]>
AuthorDate: Thu Aug 13 15:24:27 2026 +0100

    Fix back-port. 11.0.x and earlier build path differently.
---
 java/org/apache/catalina/core/AsyncContextImpl.java | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/java/org/apache/catalina/core/AsyncContextImpl.java 
b/java/org/apache/catalina/core/AsyncContextImpl.java
index 2e8f1ccc6a..a3ae106adc 100644
--- a/java/org/apache/catalina/core/AsyncContextImpl.java
+++ b/java/org/apache/catalina/core/AsyncContextImpl.java
@@ -18,7 +18,6 @@ package org.apache.catalina.core;
 
 import java.io.IOException;
 import java.io.Serial;
-import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.CopyOnWriteArrayList;
@@ -48,7 +47,6 @@ import org.apache.coyote.RequestInfo;
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
 import org.apache.tomcat.util.ExceptionUtils;
-import org.apache.tomcat.util.buf.UDecoder;
 import org.apache.tomcat.util.res.StringManager;
 
 /**
@@ -236,13 +234,10 @@ public class AsyncContextImpl implements AsyncContext, 
AsyncContextCallback {
             path = path.substring(cpath.length());
         }
         /*
-         * This is a dispatch of the original request path. That path will 
always be URI-decoded. That will cause
-         * problems in ServletContext.getRequestDispatcher() if the decoded 
URI contains a literal '?' as it will be
-         * treated as a query delimiter. Therefore, ignore 
context.getDispatchersUseEncodedPaths() here and always
-         * encode. Also need to mark this request as ignoring 
context.getDispatchersUseEncodedPaths() so it is handled
-         * correctly in ServletContext.getRequestDispatcher().
+         * This is a dispatch of the original request path. That path 
(obtained request.getRequestURI()) will always be
+         * URL-encoded. Therefore, ignore 
context.getDispatchersUseEncodedPaths() here and mark as always encoded so it
+         * is handled correctly in ServletContext.getRequestDispatcher().
          */
-        path = UDecoder.URLDecode(path, StandardCharsets.UTF_8);
         try {
             uriEncoded.set(Boolean.TRUE);
             dispatch(path);


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to