[ 
https://issues.apache.org/jira/browse/SLING-7194?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16285678#comment-16285678
 ] 

Stefan Seifert commented on SLING-7194:
---------------------------------------

yes, that's why i was a bit reluctant to fix this right away. i assume the 
impact of such a change here would be much, much smaller than that of the 
filter change, but still it might cause trouble difficult to detect.

the alternative would be to explicitly document the behavior in both 
[apidocs|https://sling.apache.org/apidocs/sling9/org/apache/sling/api/adapter/AdapterFactory.html]
 and 
[documentation|https://sling.apache.org/documentation/the-sling-engine/adapters.html].

> 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)

Reply via email to