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