You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Colm O hEigeartaigh (JIRA)" <ji...@apache.org> on 2018/06/26 23:05:00 UTC

[jira] [Resolved] (CXF-7765) URITemplate.compareTemplates returns inconsistent results

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

Colm O hEigeartaigh resolved CXF-7765.
--------------------------------------
    Resolution: Fixed

> URITemplate.compareTemplates returns inconsistent results
> ---------------------------------------------------------
>
>                 Key: CXF-7765
>                 URL: https://issues.apache.org/jira/browse/CXF-7765
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-RS
>    Affects Versions: 3.1.15
>            Reporter: Shon Vella
>            Assignee: Colm O hEigeartaigh
>            Priority: Major
>             Fix For: 3.2.6, 3.1.17
>
>
> When org.apache.cxf.jaxrs.model.URITemplate.compareTemplates() is passed two templates with the same number of literal characters, it returns -1 regardless of the order the templates a passed in. I suppose this may be on purpose, but the result is that if compareTemplates() is used as the basis of a Comparator<URITemplate> that is used by java.util.Collections.sort() it can result in:
> {{java.lang.IllegalArgumentException: Comparison method violates its general contract!}}
> I would also expect that this would result in some degree of unpredictability of the prioritization of when selecting the appropriate JAX-RS method to call for a given request.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)