Hi > > On Mon, Mar 14, 2011 at 8:44 AM, antalus <[email protected]> wrote: > >> Hi, >> >> I have a simple resource class >> >> @Path("{id}") >> public class TestResource { >> @GET >> @Produces(MediaType.TEXT_PLAIN) >> public Response test(@PathParam("id") String id){ >> final String result = String.format("Received PathParam: '%s'", >> id); >> System.out.println(result); >> return Response.ok().entity(result).build(); >> } >> } >> >> When I do the GET request with path "/hello%3B" the response is: >> >> HTTP/1.1 404 Not Found >> Content-Type: text/xml >> Allow: GET,OPTIONS,HEAD >> Date: Sun, 13 Mar 2011 08:17:40 GMT >> Content-Length: 0 >> Server: Jetty(6.1.26) >> >> But what I expect from this request is that method test() is invoked with >> "hello;" string as parameter. >> So I think the problem is with encoded semi-colon %3B. Other encoded >> special >> symbols seem to work as expected. >> >> Is such behavior a bug? >> >> > I'll write a test and get back to you asap. >
It was a bug which is now fixed (CXF-3403, CXF-3404). First, the use of HttpServletRequest.getPathInfo() for determining the base request URI was problematic because the decoded value was returned and the matrix parameters were lost on the last path segment - I added the workaround a long time ago but it fails with %3B being decoded too. Another problem was in the JAX-RS code itself, to do with decoding the PathParm values too early... Thanks for reporting this issue... Sergey
