[ 
https://issues.apache.org/jira/browse/CXF-8278?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jim Krueger updated CXF-8278:
-----------------------------
    Description: 
Currently the constructor for org.apache.cxf.jaxrs.model.URITemplate adds 
parentheses around the regex pattern.  However, if a user specifies a regex 
already containing parentheses (for example: @Path(*"_/{example : 
([0-9a-f]{4}|[0-9a-f]{_8}_)}/test/\{file}_"*) then the URITemplate constructor 
will add additional parenthesis around the pattern for the "example" field.   
This will result in the  Regex expression as being a group within another group 
and will cause the Matcher returned from Pattern.matcher() to contain duplicate 
values for this regex pattern.  As a result, the values will not match the 
values. 

The URITemplate constructor should be changed to only add parentheses if they 
do not already exist.

  was:
Currently the constructor for org.apache.cxf.jaxrs.model.URITemplate adds 
parentheses around the regex pattern.  However, if a user specifies a regex 
already containing parentheses (for example: @Path(*"_/{example : 
(*[0-9a-f]*{4}.|*[0-9a-f]*{8}_**_.)}/test/\{file}_"*) then the URITemplate 
constructor will add additional parenthesis around the pattern for the 
"example" field.   This will result in the  Regex expression as being a group 
within another group and will cause the Matcher returned from Pattern.matcher() 
to contain duplicate values for this regex pattern.  As a result, the values 
will not match the values. 

The URITemplate constructor should be changed to only add parentheses if they 
do not already exist.


> @Path with regular expression containing parentheses does not resolve 
> correctly
> -------------------------------------------------------------------------------
>
>                 Key: CXF-8278
>                 URL: https://issues.apache.org/jira/browse/CXF-8278
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-RS
>    Affects Versions: 3.3.6
>            Reporter: Jim Krueger
>            Priority: Major
>             Fix For: 3.3.6
>
>
> Currently the constructor for org.apache.cxf.jaxrs.model.URITemplate adds 
> parentheses around the regex pattern.  However, if a user specifies a regex 
> already containing parentheses (for example: @Path(*"_/{example : 
> ([0-9a-f]{4}|[0-9a-f]{_8}_)}/test/\{file}_"*) then the URITemplate 
> constructor will add additional parenthesis around the pattern for the 
> "example" field.   This will result in the  Regex expression as being a group 
> within another group and will cause the Matcher returned from 
> Pattern.matcher() to contain duplicate values for this regex pattern.  As a 
> result, the values will not match the values. 
> The URITemplate constructor should be changed to only add parentheses if they 
> do not already exist.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to