You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by da...@apache.org on 2015/07/31 16:38:36 UTC

svn commit: r1693612 - /felix/trunk/framework/src/main/java/org/apache/felix/framework/ServiceRegistry.java

Author: davidb
Date: Fri Jul 31 14:38:36 2015
New Revision: 1693612

URL: http://svn.apache.org/r1693612
Log:
FELIX-4977 Service Registry Concurrency

Modified:
    felix/trunk/framework/src/main/java/org/apache/felix/framework/ServiceRegistry.java

Modified: felix/trunk/framework/src/main/java/org/apache/felix/framework/ServiceRegistry.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/ServiceRegistry.java?rev=1693612&r1=1693611&r2=1693612&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/apache/felix/framework/ServiceRegistry.java (original)
+++ felix/trunk/framework/src/main/java/org/apache/felix/framework/ServiceRegistry.java Fri Jul 31 14:38:36 2015
@@ -362,6 +362,10 @@ public class ServiceRegistry
                                 svcObj = holder.m_service;
                             }
                         }
+
+                        // if someone concurrently changed the holder, loop again
+                        if (holder != usage.m_svcHolderRef.get())
+                            holder = null;
                     }
                 }
             }