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: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org