commit | c7e2ef86546859dcf6fb60a07d7dcec4dd5be8b6 | [log] [tgz] |
---|---|---|
author | A. J. David Bosschaert <davidb@apache.org> | Fri Sep 18 11:54:02 2015 +0000 |
committer | A. J. David Bosschaert <davidb@apache.org> | Fri Sep 18 11:54:02 2015 +0000 |
tree | f58f0d53361ad61bb0f135c94049688029311d98 | |
parent | 137aecd3e470a81a9e755cafed695ae1430c10ab [diff] |
FELIX-5043 Potential of waiting forever in ServiceRegistry.getService() This commit should fix the issue. I'll contribute a test in a separate commit. git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1703814 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 da101e9..22552e8 100644 --- a/framework/src/main/java/org/apache/felix/framework/ServiceRegistry.java +++ b/framework/src/main/java/org/apache/felix/framework/ServiceRegistry.java
@@ -340,9 +340,12 @@ 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 {