Author: gnodet
Date: Wed Mar 9 15:34:17 2016
New Revision: 1734268
URL: http://svn.apache.org/viewvc?rev=1734268&view=rev
Log:
[ARIES-1498] Possible NullPointerException in
AbstractServiceReferenceRecipe#setSatisfied
Modified:
aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/AbstractServiceReferenceRecipe.java
Modified:
aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/AbstractServiceReferenceRecipe.java
URL:
http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/AbstractServiceReferenceRecipe.java?rev=1734268&r1=1734267&r2=1734268&view=diff
==============================================================================
---
aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/AbstractServiceReferenceRecipe.java
(original)
+++
aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/AbstractServiceReferenceRecipe.java
Wed Mar 9 15:34:17 2016
@@ -89,7 +89,7 @@ public abstract class AbstractServiceRef
private final AtomicBoolean started = new AtomicBoolean();
private final AtomicBoolean satisfied = new AtomicBoolean();
- private SatisfactionListener satisfactionListener;
+ private volatile SatisfactionListener satisfactionListener;
private final AccessControlContext accessControlContext;
@@ -416,7 +416,10 @@ public abstract class AbstractServiceRef
// so that it will only be true if the value actually changed
if (satisfied.getAndSet(s) != s) {
LOGGER.debug("Service reference with filter {} satisfied {}",
getOsgiFilter(), this.satisfied);
- this.satisfactionListener.notifySatisfaction(this);
+ SatisfactionListener listener = this.satisfactionListener;
+ if (listener != null) {
+ listener.notifySatisfaction(this);
+ }
}
}