commit | 9e01613e5a26c634712f55d3068866e454dea97e | [log] [tgz] |
---|---|---|
author | A. J. David Bosschaert <davidb@apache.org> | Mon Oct 12 16:27:08 2015 +0000 |
committer | A. J. David Bosschaert <davidb@apache.org> | Mon Oct 12 16:27:08 2015 +0000 |
tree | 733e82e25d916e02fec631188afdd9f08942554d | |
parent | 1a38754a344b9d01cf63426b065aeaa8187f0697 [diff] |
FELIX-5075 Framework hooks not re-sorted on service ranking update git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1708156 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/framework/src/main/java/org/apache/felix/framework/HookRegistry.java b/framework/src/main/java/org/apache/felix/framework/HookRegistry.java index 55084cd..51ca4b3 100644 --- a/framework/src/main/java/org/apache/felix/framework/HookRegistry.java +++ b/framework/src/main/java/org/apache/felix/framework/HookRegistry.java
@@ -159,8 +159,12 @@ SortedSet<ServiceReference<?>> hooks = m_allHooks.get(serviceName); if (hooks != null) { - hooks = new TreeSet<ServiceReference<?>>(hooks); - m_allHooks.put(serviceName, hooks); + TreeSet<ServiceReference<?>> newHooks = new TreeSet<ServiceReference<?>>(Collections.reverseOrder()); + for (ServiceReference<?> hook : hooks) { + newHooks.add(hook); // addAll() does not re-sort + } + + m_allHooks.put(serviceName, newHooks); } } }