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

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


The following commit(s) were added to refs/heads/10.1.x by this push:
     new c53351e297 Remove unnecessary check in addCookie() Add missing check 
in encodeURL()
c53351e297 is described below

commit c53351e2971bee01d280528d5e94b8d020c3c9c9
Author: Mark Thomas <[email protected]>
AuthorDate: Mon Jun 22 16:55:04 2026 +0100

    Remove unnecessary check in addCookie() Add missing check in encodeURL()
---
 java/org/apache/catalina/connector/Response.java | 43 +++++++++++++-----------
 1 file changed, 23 insertions(+), 20 deletions(-)

diff --git a/java/org/apache/catalina/connector/Response.java 
b/java/org/apache/catalina/connector/Response.java
index 69d76babba..9fb43e8291 100644
--- a/java/org/apache/catalina/connector/Response.java
+++ b/java/org/apache/catalina/connector/Response.java
@@ -908,16 +908,13 @@ public class Response implements HttpServletResponse {
 
         cookies.add(cookie);
 
+        // Note: This also ensures context is not null
         String header = generateCookieString(cookie);
         if (header == null) {
             return;
         }
-        Context context = getContext();
-        if (context == null) {
-            return;
-        }
         // if we reached here, no exception, cookie is valid
-        addHeader("Set-Cookie", header, 
context.getCookieProcessor().getCharset());
+        addHeader("Set-Cookie", header, 
getContext().getCookieProcessor().getCharset());
     }
 
     /**
@@ -962,13 +959,18 @@ public class Response implements HttpServletResponse {
      * @return The cookie header string
      */
     public String generateCookieString(final Cookie cookie) {
-        // Web application code can receive a IllegalArgumentException
-        // from the generateHeader() invocation
-        if (SecurityUtil.isPackageProtectionEnabled()) {
-            return AccessController
-                    .doPrivileged(new 
PrivilegedGenerateCookieString(getContext(), cookie, request.getRequest()));
+        final Context context = getContext();
+        if (context != null) {
+            // Web application code can receive a IllegalArgumentException
+            // from the generateHeader() invocation
+            if (SecurityUtil.isPackageProtectionEnabled()) {
+                return AccessController
+                        .doPrivileged(new 
PrivilegedGenerateCookieString(context, cookie, request.getRequest()));
+            } else {
+                return context.getCookieProcessor().generateHeader(cookie, 
request.getRequest());
+            }
         } else {
-            return getContext().getCookieProcessor().generateHeader(cookie, 
request.getRequest());
+            return null;
         }
     }
 
@@ -1121,17 +1123,18 @@ public class Response implements HttpServletResponse {
         }
 
         if (isEncodeable(absolute)) {
-            // W3c spec clearly said
-            if (url.equalsIgnoreCase("")) {
-                url = absolute;
-            } else if (url.equals(absolute) && !hasPath(url)) {
-                url += '/';
+            Session session = request.getSessionInternal();
+            if (session != null) {
+                // W3c spec clearly said
+                if (url.equalsIgnoreCase("")) {
+                    url = absolute;
+                } else if (url.equals(absolute) && !hasPath(url)) {
+                    url += '/';
+                }
+                return toEncoded(url, session.getIdInternal());
             }
-            return toEncoded(url, 
request.getSessionInternal().getIdInternal());
-        } else {
-            return url;
         }
-
+        return url;
     }
 
 


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

Reply via email to