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

Reply via email to