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

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


The following commit(s) were added to refs/heads/9.0.x by this push:
     new e2d82d0b4f Align escaping ExtendedAccessLogValve with the other 
implementations
e2d82d0b4f is described below

commit e2d82d0b4f748e15f4b7dcc520dd020d359f61b2
Author: Mark Thomas <[email protected]>
AuthorDate: Wed Apr 8 12:23:07 2026 +0100

    Align escaping ExtendedAccessLogValve with the other implementations
---
 .../catalina/valves/ExtendedAccessLogValve.java    | 31 +++++++++++++++-------
 webapps/docs/changelog.xml                         |  4 +++
 2 files changed, 26 insertions(+), 9 deletions(-)

diff --git a/java/org/apache/catalina/valves/ExtendedAccessLogValve.java 
b/java/org/apache/catalina/valves/ExtendedAccessLogValve.java
index f9590a4802..6ec25ff389 100644
--- a/java/org/apache/catalina/valves/ExtendedAccessLogValve.java
+++ b/java/org/apache/catalina/valves/ExtendedAccessLogValve.java
@@ -572,11 +572,17 @@ public class ExtendedAccessLogValve extends 
AccessLogValve {
                             @Override
                             public void addElement(CharArrayWriter buf, Date 
date, Request request, Response response,
                                     long time) {
-                                String query = request.getQueryString();
-                                if (query != null) {
-                                    buf.append(query);
-                                } else {
+                                String query = null;
+                                if (request != null) {
+                                    query = request.getQueryString();
+                                }
+                                if (query == null) {
                                     buf.append('-');
+                                } else if (query.isEmpty()) {
+                                    // NO-OP
+                                    // Don't want to write "-" if the query 
string is present but empty
+                                } else {
+                                    escapeAndAppend(query, buf, true);
                                 }
                             }
                         };
@@ -586,11 +592,18 @@ public class ExtendedAccessLogValve extends 
AccessLogValve {
                         @Override
                         public void addElement(CharArrayWriter buf, Date date, 
Request request, Response response,
                                 long time) {
-                            String query = request.getQueryString();
-                            buf.append(request.getRequestURI());
-                            if (query != null) {
-                                buf.append('?');
-                                buf.append(request.getQueryString());
+                            if (request != null) {
+                                escapeAndAppend(request.getRequestURI(), buf);
+                                String query = request.getQueryString();
+                                if (query != null) {
+                                    buf.append('?');
+                                    // Don't want to write "-" if the query 
string is present but empty
+                                    if (!query.isEmpty()) {
+                                        buf.append(request.getQueryString());
+                                    }
+                                }
+                            } else {
+                                buf.append('-');
                             }
                         }
                     };
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index 22a3152971..3fdb32d8c8 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -120,6 +120,10 @@
         Failed precondition should make WebDAV DELETE fail. <pr>982</pr>
         submitted by Mahmoud Alarby. (remm)
       </fix>
+      <fix>
+        Align the escaping in <code>ExtendedAccessLogValve</code> with the 
other
+        <code>AccessLogValve</code> implementations. (markt)
+      </fix>
     </changelog>
   </subsection>
   <subsection name="Coyote">


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

Reply via email to