Hi, I just want to pickup this topic in a new thread, to make sure it's noticed - thx to Uli's suggestion in the previous thread :)
At first a short summary again: - T5 (the PageRenderDispatcher) tries to decode activation context arguments (in convertActivationContext). - The activation context arguments are read from request.getPath() (httpServletRequest.getServletPath()). - The httpServletRequest.getServletPath() provides the _decoded_ part of the url, according to the servlet specification [1]. E.g., getServletPath() may return special characters like e.g. german umlauts, so the url encoded "%C3%BCbel" would be returned as "übel". - When PageRenderDispatcher.convertActivationContext tries to decode the already decoded string (by invoking TapestryInternalUtils.urlDecode which itself invokes commons URLCodec.decode) and either fails with a "org.apache.commons.codec.DecoderException: Invalid URL encoding" (e.g. for "tr%b" or returns the wrong value (e.g. "?bel" for "übel"). Our encoding is UTF-8 btw. My question is: why does PageRenderDispatcher.convertActivationContext try to decode the already decoded string again? I asume there's *some* reason for this ;) Otherwise I'd like to submit an issue with a patch for this. Thanx && cheers, Martin [1] An excerpt from the servlet spec 2.4 p. 243: getServletPath() [...] Returns: a String containing the name or path of the servlet being called, as specified in the request URL, decoded, or an empty string if the servlet used to process the request is matched using the “/*” pattern.
signature.asc
Description: This is a digitally signed message part