Author: markt
Date: Wed May  4 18:19:10 2011
New Revision: 1099553

URL: http://svn.apache.org/viewvc?rev=1099553&view=rev
Log:
Make access logging more robust for 400 responses.

Modified:
    tomcat/trunk/java/org/apache/catalina/valves/AccessLogValve.java
    tomcat/trunk/webapps/docs/changelog.xml

Modified: tomcat/trunk/java/org/apache/catalina/valves/AccessLogValve.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/valves/AccessLogValve.java?rev=1099553&r1=1099552&r2=1099553&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/valves/AccessLogValve.java (original)
+++ tomcat/trunk/java/org/apache/catalina/valves/AccessLogValve.java Wed May  4 
18:19:10 2011
@@ -926,16 +926,20 @@ public class AccessLogValve extends Valv
         @Override
         public void addElement(StringBuilder buf, Date date, Request request,
                 Response response, long time) {
+            String value = null;
             if (requestAttributesEnabled) {
                 Object host = request.getAttribute(REMOTE_HOST_ATTRIBUTE);
-                if (host == null) {
-                    buf.append(request.getRemoteHost());
-                } else {
-                    buf.append(host);
+                if (host != null) {
+                    value = host.toString();
                 }
-            } else {
-                buf.append(request.getRemoteHost());
             }
+            if (value == null || value.length() == 0) {
+                value = request.getRemoteHost();
+            }
+            if (value == null || value.length() == 0) {
+                value = "-";
+            }
+            buf.append(value);
         }
     }
     
@@ -1027,17 +1031,23 @@ public class AccessLogValve extends Valv
         public void addElement(StringBuilder buf, Date date, Request request,
                 Response response, long time) {
             if (request != null) {
-                buf.append(request.getMethod());
-                buf.append(' ');
-                buf.append(request.getRequestURI());
-                if (request.getQueryString() != null) {
-                    buf.append('?');
-                    buf.append(request.getQueryString());
+                String method = request.getMethod();
+                if (method == null) {
+                    // No method means no request line
+                    buf.append('-');
+                } else {
+                    buf.append(request.getMethod());
+                    buf.append(' ');
+                    buf.append(request.getRequestURI());
+                    if (request.getQueryString() != null) {
+                        buf.append('?');
+                        buf.append(request.getQueryString());
+                    }
+                    buf.append(' ');
+                    buf.append(request.getProtocol());
                 }
-                buf.append(' ');
-                buf.append(request.getProtocol());
             } else {
-                buf.append("- - ");
+                buf.append('-');
             }
         }
     }

Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1099553&r1=1099552&r2=1099553&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Wed May  4 18:19:10 2011
@@ -107,6 +107,11 @@
         Partial sync of MIME type mapping with mime.types from the Apache web
         server. About 600 MIME types added, some changed. (rjung)
       </add>
+      <fix>
+        Make access logging more robust when logging requests that generate 400
+        responses since the request object is unlikely to be fully/correctly
+        populated in that case. (markt)
+      </fix>
     </changelog>
   </subsection>
   <subsection name="Coyote">



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to