[ https://issues.apache.org/jira/browse/SLING-7194?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16213866#comment-16213866 ]
Carsten Ziegeler commented on SLING-7194: ----------------------------------------- We usually always prefer highest ranking over lowest, so I think the implementation is wrong > AdapterManager sorts AdapterFactory implementations lowest ranking first > ------------------------------------------------------------------------ > > Key: SLING-7194 > URL: https://issues.apache.org/jira/browse/SLING-7194 > Project: Sling > Issue Type: Bug > Components: Extensions > Affects Versions: Adapter 2.1.10 > Reporter: Stefan Seifert > > the current implementation of AdapterManager uses a > AdapterFactoryDescriptorMap to sort the AdapterFactory implementations found. > this is done using a TreeMap with the ServiceReference as key. > ServiceReference implements a compareTo. > according to its documentation the default implementation sorts with > service-ranking lowest-first/service id highest-first: > https://osgi.org/javadoc/r6/core/org/osgi/framework/ServiceReference.html#compareTo(java.lang.Object) > when picking a service from multiple ones using BundleContext.getService, the > service with hightest service ranking/lowest service id is returned. > i would expect the same from the AdapterManager implementation - if multiple > implementations match pick that one with highest ranking/lowest service id. -- This message was sent by Atlassian JIRA (v6.4.14#64029)