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)

Reply via email to