The current "search" for matching root resources in FindRootResourceHandler.handleRequest does not take into account an encoded URL path. I wasn't sure where or how to test for this. There is already a test at UriInfoImplTest.testUriInfo that has an encoded URI path segment, but I think the MockRequestConstructor or MockHttpServletRequest is already decoding it prior to sending it. See attached patch for the proposed fix. I could use a little pointer as to where to put the test in the unittests.
I have a test for this in a forthcoming integration test Jira. It looks something like this:
HttpClient client = new HttpClient();
GetMethod getMethod = new GetMethod(getBaseURI()
Without the attached patch fix, I get a 404. With the attached patch, this test passes.