From 93eeda317eefbbc592252c52e1b95ceb98e34e1e Mon Sep 17 00:00:00 2001 From: markt Date: Mon, 20 Nov 2006 00:10:03 +0000 Subject: [PATCH] Port fix bug 40860. Additional logging if parameter processing fails. git-svn-id: https://svn.apache.org/repos/asf/tomcat/tc6.0.x/trunk@476988 13f79535-47bb-0310-9956-ffa450edef68 --- java/org/apache/catalina/connector/LocalStrings.properties | 1 + java/org/apache/catalina/connector/Request.java | 3 ++- java/org/apache/tomcat/util/http/Parameters.java | 4 +++- webapps/docs/changelog.xml | 4 ++++ 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/java/org/apache/catalina/connector/LocalStrings.properties b/java/org/apache/catalina/connector/LocalStrings.properties index a85f68848..20b3ba35e 100644 --- a/java/org/apache/catalina/connector/LocalStrings.properties +++ b/java/org/apache/catalina/connector/LocalStrings.properties @@ -46,6 +46,7 @@ coyoteRequest.setAttribute.namenull=Cannot call setAttribute with a null name coyoteRequest.listenerStart=Exception sending context initialized event to listener instance of class {0} coyoteRequest.listenerStop=Exception sending context destroyed event to listener instance of class {0} coyoteRequest.attributeEvent=Exception thrown by attributes event listener +coyoteRequest.parseParameters=Exception thrown whilst processing POSTed parameters coyoteRequest.postTooLarge=Parameters were not parsed because the size of the posted data was too big. Use the maxPostSize attribute of the connector to resolve this if the application should accept large POSTs. requestFacade.nullRequest=Null request object responseFacade.nullResponse=Null response object diff --git a/java/org/apache/catalina/connector/Request.java b/java/org/apache/catalina/connector/Request.java index ec358624d..2c22bac1d 100644 --- a/java/org/apache/catalina/connector/Request.java +++ b/java/org/apache/catalina/connector/Request.java @@ -2444,7 +2444,8 @@ public class Request parameters.processParameters(formData, 0, len); } } catch (Throwable t) { - ; // Ignore + context.getLogger().warn( + sm.getString("coyoteRequest.parseParameters"), t); } } diff --git a/java/org/apache/tomcat/util/http/Parameters.java b/java/org/apache/tomcat/util/http/Parameters.java index 28f5890ac..6c04445fd 100644 --- a/java/org/apache/tomcat/util/http/Parameters.java +++ b/java/org/apache/tomcat/util/http/Parameters.java @@ -381,9 +381,9 @@ public final class Parameters extends MultiMap { pos=valEnd+1; if( nameEnd<=nameStart ) { + log.warn("Parameters: Invalid chunk ignored."); continue; // invalid chunk - it's better to ignore - // XXX log it ? } tmpName.setBytes( bytes, nameStart, nameEnd-nameStart ); tmpValue.setBytes( bytes, valStart, valEnd-valStart ); @@ -392,6 +392,8 @@ 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); } tmpName.recycle(); diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index b7c7c44fe..6651e1fd9 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -32,6 +32,10 @@ + + 40860: Log exceptions and other problems during parameter + processing. (markt) + -- 2.11.0