Luís Alves created CXF-8153:
-------------------------------
Summary: @Path with REGEX in path parameter and
checkMethodsForInvalidURITemplates(userType, methods);
Key: CXF-8153
URL: https://issues.apache.org/jira/browse/CXF-8153
Project: CXF
Issue Type: Bug
Components: JAX-RS
Affects Versions: 3.3.4
Reporter: Luís Alves
I have an API jar provided by the server, with the interface with all the
JAX-RS annotations.
One of then has an REGEX. Something like:
{code:java}
@Path("{ resoureUUID :
[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}}}")
{code}
I can't create a proxy because the validation fails. Analyzing the code I get
to
org.apache.cxf.microprofile.client.Validator#checkMethodsForInvalidURITemplates(Class,
Method[]), more specifically to this part (with comments):
{code:java}
for (Parameter p : method.getParameters()) {
PathParam pathParam = p.getAnnotation(PathParam.class);
if (pathParam != null) {
// don't know the spec, but setting this to "x" cause
the URITemplate to
// throw new IllegalArgumentException("Value '" + sval +
"' does not match variable " + var.getName() + " with pattern " +
var.getPattern());
paramMap.put(pathParam.value(), "x");
}
}
try {
template.substitute(paramMap,
Collections.<String>emptySet(), false);
} catch (IllegalArgumentException ex) {
throwException("VALIDATION_UNRESOLVED_PATH_PARAMS",
userType, method);
}
{code}
Not sure if this is a bug or by spec, but this prevents to use path params with
regex, as the only regex that works must match "x".
--
This message was sent by Atlassian Jira
(v8.3.4#803005)