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