Author: davidb Date: Fri Sep 18 11:54:02 2015 New Revision: 1703814 URL: http://svn.apache.org/viewvc?rev=1703814&view=rev Log: FELIX-5043 Potential of waiting forever in ServiceRegistry.getService()
This commit should fix the issue. I'll contribute a test in a separate commit. 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=1703814&r1=1703813&r2=1703814&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 Sep 18 11:54:02 2015 @@ -340,9 +340,12 @@ public class ServiceRegistry if (usage.m_svcHolderRef.compareAndSet(null, h)) { holder = h; - svcObj = reg.getService(bundle); - holder.m_service = svcObj; - holder.m_latch.countDown(); + try { + svcObj = reg.getService(bundle); + holder.m_service = svcObj; + } finally { + holder.m_latch.countDown(); + } } else {