[ https://issues.apache.org/jira/browse/SLING-4656?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14510660#comment-14510660 ]
Felix Meschberger commented on SLING-4656: ------------------------------------------ Thanks for the tests. Will fix compareTo as proposed (sounds to be the better option to me as well) > ProviderHandler implements compareTo incorreclty > ------------------------------------------------ > > Key: SLING-4656 > URL: https://issues.apache.org/jira/browse/SLING-4656 > Project: Sling > Issue Type: Bug > Components: ResourceResolver > Affects Versions: Resource Resolver 1.2.4 > Reporter: Felix Meschberger > Fix For: Resource Resolver 1.2.6 > > > The implementation of the ResourceResolver's compareTo method is wrong as it > favors services registered later over services registered earlier, while > older services should actually be preferred (assuming there sevice.ranking > values are equal). In essence it implements natural ServiceReference ordering > instead of ranking order which is the inverse. > Two options to fix: > * Fix ProviderHandler.compareTo to implement service ranking and thus revers > of natural ordering > * Fix ResourceProviderEntry.conditionalSort to use a reverse comparator > While at it, the extraction of the service.ranking property is overly complex > since it first checks for null and then for the correct type. This can be > simplified by just checking for the correct type as a null value never > matches any type. -- This message was sent by Atlassian JIRA (v6.3.4#6332)