[ https://issues.apache.org/jira/browse/FELIX-5485?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Renat Sabitov resolved FELIX-5485. ---------------------------------- Resolution: Fixed > 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 > Assignee: Guillaume Nodet > Priority: Minor > Fix For: framework-5.6.2 > > Attachments: FELIX-5485.diff > > > 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 (v8.3.2#803003)