You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by gn...@apache.org on 2012/08/01 21:24:05 UTC

svn commit: r1368208 - /aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/ReferenceRecipe.java

Author: gnodet
Date: Wed Aug  1 19:24:05 2012
New Revision: 1368208

URL: http://svn.apache.org/viewvc?rev=1368208&view=rev
Log:
[ARIES-897] The ReferenceRecipe sometimes unget the tracked service for no reason
Conflicts:

	blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/ReferenceRecipe.java

Modified:
    aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/ReferenceRecipe.java

Modified: aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/ReferenceRecipe.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/ReferenceRecipe.java?rev=1368208&r1=1368207&r2=1368208&view=diff
==============================================================================
--- aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/ReferenceRecipe.java (original)
+++ aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/ReferenceRecipe.java Wed Aug  1 19:24:05 2012
@@ -160,14 +160,16 @@ public class ReferenceRecipe extends Abs
             trackedServiceReference = ref;
             voidProxiedChildren();
             bind(trackedServiceReference, proxy);
-            if (oldReference != null && trackedService != null) {
-              try {
-                getBundleContextForServiceLookup().ungetService(oldReference);
-              } catch (IllegalStateException ise) {
-                // In case the service no longer exists lets just cope and ignore.
+            if (ref != oldReference) {
+              if (oldReference != null && trackedService != null) {
+                try {
+                  blueprintContainer.getBundleContext().ungetService(oldReference);
+                } catch (IllegalStateException ise) {
+                  // In case the service no longer exists lets just cope and ignore.
+                }
               }
+              trackedService = null;
             }
-            trackedService = null;
             monitor.notifyAll();
         }
     }