Resouce matching in jra seems incorrect
---------------------------------------
Key: CXF-800
URL: https://issues.apache.org/jira/browse/CXF-800
Project: CXF
Issue Type: Bug
Components: Core
Affects Versions: 2.0
Environment: Windows XP, Java 1.5
Reporter: Derek Shaw
For me, this resource
@Get
@HttpResource(location = "/player/most/comments/{maxCount}")
@WebResult(name = "PlayerList")
public List<Integer> getMostCommented(@WebParam(name = "maxCount") int
maxCount);
Is matching this resource
@Get
@HttpResource(location = "/player/{ID}")
@WebResult(name = "Player")
public Player getPlayer(@WebParam(name = "ID") int ID) throws
PlayerNotFoundFault;
The reason is that in ResourceUtil.java on line 38
if (i == resource.length()) {
// if } is the last part of the resource, assume the
// rest of the request uri matches
return reqUri.length();
}
This seems incorrect to me ( could easily be wrong here ) seem like since you
are assuming '}' to be the end, then you should return resource.length() and
not the request lenght.
Later when the correct resource ( the one that matches reqUri) is sent in, we
already have a bestMatch = reqUri.lenth and the the check in URIMapper.java at
line 46 does a > test so does not use the correct match.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.