Author: markt
Date: Fri Jun 19 12:04:52 2009
New Revision: 786468
URL: http://svn.apache.org/viewvc?rev=786468&view=rev
Log:
As per review comments:
- use StringBuilder
- add comment to explain one possible cause
- better logging using original data
Modified:
tomcat/trunk/java/org/apache/tomcat/util/http/Parameters.java
Modified: tomcat/trunk/java/org/apache/tomcat/util/http/Parameters.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/http/Parameters.java?rev=786468&r1=786467&r2=786468&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/http/Parameters.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/http/Parameters.java Fri Jun 19
12:04:52 2009
@@ -382,10 +382,11 @@
pos=valEnd+1;
if( nameEnd<=nameStart ) {
- StringBuffer msg = new StringBuffer("Parameters: Invalid chunk
");
+ StringBuilder msg = new StringBuilder("Parameters: Invalid
chunk ");
+ // No name eg ...&=xx&... will trigger this
if (valEnd >= nameStart) {
msg.append('\'');
- msg.append(new String(bytes, nameStart, valEnd));
+ msg.append(new String(bytes, nameStart, valEnd -
nameStart));
msg.append("' ");
}
msg.append("ignored.");
@@ -399,10 +400,15 @@
try {
addParam( urlDecode(tmpName, enc), urlDecode(tmpValue, enc) );
} catch (IOException e) {
- // Exception during character decoding: skip parameter
- String msg = "Parameters: Character decoding failed. " +
- "Parameter '" + tmpName + "' with value '" +
- tmpValue + "' has been ignored.";
+ // tmpName or tmpValue will be corrupted at this point due to
+ // failed decoding. Have to go to queryMB to get original data
+ StringBuilder msg =
+ new StringBuilder("Parameters: Character decoding
failed.");
+ msg.append(" Parameter '");
+ msg.append(queryMB.toString().substring(nameStart, nameEnd));
+ msg.append("' with value '");
+ msg.append(queryMB.toString().substring(valStart, valEnd));
+ msg.append("' has been ignored.");
if (log.isDebugEnabled()) {
log.debug(msg, e);
} else {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]