When setting the dependency comparator to null, use the default OSGi ranking policy.
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1493098 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/ipojo/runtime/core/src/main/java/org/apache/felix/ipojo/dependency/impl/ServiceReferenceManager.java b/ipojo/runtime/core/src/main/java/org/apache/felix/ipojo/dependency/impl/ServiceReferenceManager.java
index c647766..f892231 100644
--- a/ipojo/runtime/core/src/main/java/org/apache/felix/ipojo/dependency/impl/ServiceReferenceManager.java
+++ b/ipojo/runtime/core/src/main/java/org/apache/felix/ipojo/dependency/impl/ServiceReferenceManager.java
@@ -23,10 +23,7 @@
import org.apache.felix.ipojo.dependency.interceptors.ServiceRankingInterceptor;
import org.apache.felix.ipojo.dependency.interceptors.ServiceTrackingInterceptor;
import org.apache.felix.ipojo.dependency.interceptors.TransformedServiceReference;
-import org.apache.felix.ipojo.util.DependencyModel;
-import org.apache.felix.ipojo.util.Log;
-import org.apache.felix.ipojo.util.Tracker;
-import org.apache.felix.ipojo.util.TrackerCustomizer;
+import org.apache.felix.ipojo.util.*;
import org.osgi.framework.Constants;
import org.osgi.framework.Filter;
import org.osgi.framework.ServiceReference;
@@ -656,7 +653,11 @@
public void setComparator(Comparator<ServiceReference> cmp) {
try {
m_dependency.acquireWriteLockIfNotHeld();
- m_comparator = cmp;
+ if (cmp == null) {
+ m_comparator = new ServiceReferenceRankingComparator();
+ } else {
+ m_comparator = cmp;
+ }
// Be aware that this method will release the lock to call the dependency callback.
setRankingInterceptor(new ComparatorBasedServiceRankingInterceptor(cmp));
} finally {