Renat Sabitov created FELIX-5485:
------------------------------------
Summary: ServiceReference#getUsingBundles() returns usages with 0
count
Key: FELIX-5485
URL: https://issues.apache.org/jira/browse/FELIX-5485
Project: Felix
Issue Type: Bug
Components: Framework
Affects Versions: framework-5.6.0
Reporter: Renat Sabitov
Javadoc for ServiceReference#getUsingBundles() states
{quote}
Specifically, this method returns the bundles whose usage count for that
service is greater than zero.
{quote}
However, the implementation uses
ServiceRegistry#getUsingBundles(ServiceReference<?> ref), which returns usages
even if usage count is 0.
The usage count is 0, because ServiceRegistry#ungetService doesn't call
ServiceRegistry#flushUsageCount for non-prototype services:
{quote}
// If the registration is invalid or the usage count for a
prototype
// reached zero, then flush it. Non-prototype services are not
flushed
// on ungetService() when they reach 0 as this introduces a race
// condition of concurrently the same service is obtained via
getService()
{quote}
Expected:
ServiceReference#getUsingBundles() doesn't return usages with 0 count
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)