From: markt Date: Wed, 4 May 2011 18:19:10 +0000 (+0000) Subject: Make access logging more robust for 400 responses. X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=2b97d2e97f08bf0feb90cac87fb3bc9d99f77d6f;p=tomcat7.0 Make access logging more robust for 400 responses. git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1099553 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/java/org/apache/catalina/valves/AccessLogValve.java b/java/org/apache/catalina/valves/AccessLogValve.java index b13e7ce18..4a9c9a41c 100644 --- a/java/org/apache/catalina/valves/AccessLogValve.java +++ b/java/org/apache/catalina/valves/AccessLogValve.java @@ -926,16 +926,20 @@ public class AccessLogValve extends ValveBase implements AccessLog { @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 ValveBase implements AccessLog { 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('-'); } } } diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 5b18aae00..560bf19c2 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -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) + + 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) +