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