You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by dj...@apache.org on 2013/03/18 21:55:06 UTC

svn commit: r1457988 - /felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java

Author: djencks
Date: Mon Mar 18 20:55:06 2013
New Revision: 1457988

URL: http://svn.apache.org/r1457988
Log:
FELIX-3971 simplify tracker tracking

Modified:
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java

Modified: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java?rev=1457988&r1=1457987&r2=1457988&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java Mon Mar 18 20:55:06 2013
@@ -168,26 +168,24 @@ public class DependencyManager<S, T> imp
     {
         private final Map<ServiceReference<T>, RefPair<T>> EMPTY_REF_MAP = Collections.emptyMap();
 
-        private ServiceTracker<T, RefPair<T>> tracker;
-
         private volatile boolean trackerOpened;
 
         private volatile Map<ServiceReference<T>, RefPair<T>> previousRefMap = EMPTY_REF_MAP;
 
         public void setTracker( ServiceTracker<T, RefPair<T>> tracker )
         {
-            this.tracker = tracker;
+            trackerRef.set( tracker );
             trackerOpened = false;
         }
 
         public boolean isSatisfied()
         {
-            return isOptional() || !tracker.isEmpty();
+            return isOptional() || !getTracker().isEmpty();
         }
 
         protected ServiceTracker<T, RefPair<T>> getTracker()
         {
-            return tracker;
+            return trackerRef.get();
         }
 
         /**
@@ -196,7 +194,7 @@ public class DependencyManager<S, T> imp
          */
         protected boolean isActive()
         {
-            return tracker.isActive();
+            return getTracker().isActive();
         }
 
         protected boolean isTrackerOpened()
@@ -1774,7 +1772,6 @@ public class DependencyManager<S, T> imp
         boolean initialActive = oldTracker != null && oldTracker.isActive();
         ServiceTracker<T, RefPair<T>> tracker = new ServiceTracker<T, RefPair<T>>( m_componentManager.getActivator().getBundleContext(), m_targetFilter, customizer, initialActive );
         customizer.setTracker( tracker );
-        trackerRef.set( tracker );
         registered = true;
         tracker.open( m_componentManager.getTrackingCount() );
         customizer.setTrackerOpened();