From 5eedf16ae604af4447d61c07b623f01945298958 Mon Sep 17 00:00:00 2001 From: markt Date: Thu, 11 Jun 2009 11:37:17 +0000 Subject: [PATCH] Provide a little more information in the logs when parameters are invalid. Speeds up the process of tracking down the broken request in the access log. Don't show the stack trace unless debug is enabled. git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@783724 13f79535-47bb-0310-9956-ffa450edef68 --- java/org/apache/tomcat/util/http/Parameters.java | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/java/org/apache/tomcat/util/http/Parameters.java b/java/org/apache/tomcat/util/http/Parameters.java index 223ae18ba..b3511072e 100644 --- a/java/org/apache/tomcat/util/http/Parameters.java +++ b/java/org/apache/tomcat/util/http/Parameters.java @@ -382,7 +382,14 @@ public final class Parameters extends MultiMap { pos=valEnd+1; if( nameEnd<=nameStart ) { - log.warn("Parameters: Invalid chunk ignored."); + StringBuffer msg = new StringBuffer("Parameters: Invalid chunk "); + if (valEnd >= nameStart) { + msg.append('\''); + msg.append(new String(bytes, nameStart, valEnd)); + msg.append("' "); + } + msg.append("ignored."); + log.warn(msg); continue; // invalid chunk - it's better to ignore } @@ -393,8 +400,14 @@ public final class Parameters extends MultiMap { addParam( urlDecode(tmpName, enc), urlDecode(tmpValue, enc) ); } catch (IOException e) { // Exception during character decoding: skip parameter - log.warn("Parameters: Character decoding failed. " + - "Parameter skipped.", e); + String msg = "Parameters: Character decoding failed. " + + "Parameter '" + tmpName + "' with value '" + + tmpValue + "' has been ignored."; + if (log.isDebugEnabled()) { + log.debug(msg, e); + } else { + log.warn(msg); + } } tmpName.recycle(); -- 2.11.0