commit | 7f324601973f0bfadd474202cd331e1ad9baa772 | [log] [tgz] |
---|---|---|
author | A. J. David Bosschaert <davidb@apache.org> | Fri Jul 31 14:38:36 2015 +0000 |
committer | A. J. David Bosschaert <davidb@apache.org> | Fri Jul 31 14:38:36 2015 +0000 |
tree | 95566c5350f757e66072b98c10feca9ab1ff1ab1 | |
parent | 7bd6a908beaf7bd6c05c6e466200e5258160b033 [diff] |
FELIX-4977 Service Registry Concurrency git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1693612 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/framework/src/main/java/org/apache/felix/framework/ServiceRegistry.java b/framework/src/main/java/org/apache/felix/framework/ServiceRegistry.java index be78da4..da101e9 100644 --- a/framework/src/main/java/org/apache/felix/framework/ServiceRegistry.java +++ b/framework/src/main/java/org/apache/felix/framework/ServiceRegistry.java
@@ -362,6 +362,10 @@ svcObj = holder.m_service; } } + + // if someone concurrently changed the holder, loop again + if (holder != usage.m_svcHolderRef.get()) + holder = null; } } }