Author: kkolinko Date: Wed Nov 17 10:41:03 2010 New Revision: 1035973 URL: http://svn.apache.org/viewvc?rev=1035973&view=rev Log: CoyoteAdapter.parsePathParameters: - do not reevaluate start/end, because we already have them in local variables - move warnedEncoding flag outside the loop, because otherwise it was always false and thus useless
Modified: tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java Modified: tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java?rev=1035973&r1=1035972&r2=1035973&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java (original) +++ tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java Wed Nov 17 10:41:03 2010 @@ -669,10 +669,10 @@ public class CoyoteAdapter implements Ad */ protected void parsePathParameters(org.apache.coyote.Request req, Request request) { - + // Process in bytes (this is default format so this is normally a NO-OP req.decodedURI().toBytes(); - + ByteChunk uriBC = req.decodedURI().getByteChunk(); int semicolon = uriBC.indexOf(';', 0); @@ -691,6 +691,8 @@ public class CoyoteAdapter implements Ad log.debug(sm.getString("coyoteAdapter.debug", "enc", enc)); } + boolean warnedEncoding = false; + while (semicolon > -1) { // Parse path param, and extract it from the decoded request URI int start = uriBC.getStart(); @@ -698,12 +700,11 @@ public class CoyoteAdapter implements Ad int pathParamStart = semicolon + 1; int pathParamEnd = ByteChunk.findBytes(uriBC.getBuffer(), - uriBC.getStart() + pathParamStart, uriBC.getEnd(), + start + pathParamStart, end, new byte[] {';', '/'}); - + String pv = null; - boolean warnedEncoding = false; - + if (pathParamEnd >= 0) { try { pv = (new String(uriBC.getBuffer(), start + pathParamStart, @@ -736,7 +737,7 @@ public class CoyoteAdapter implements Ad } uriBC.setEnd(start + semicolon); } - + if (log.isDebugEnabled()) { log.debug(sm.getString("coyoteAdapter.debug", "pathParamStart", String.valueOf(pathParamStart))); @@ -761,7 +762,7 @@ public class CoyoteAdapter implements Ad } } } - + semicolon = uriBC.indexOf(';', semicolon); } } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org