[ https://issues.apache.org/jira/browse/FELIX-5485?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Guillaume Nodet resolved FELIX-5485. ------------------------------------ Resolution: Fixed Fix Version/s: framework-5.6.2 Committing to https://svn.apache.org/repos/asf/felix/trunk ... M framework/src/main/java/org/apache/felix/framework/ServiceRegistry.java M framework/src/test/java/org/apache/felix/framework/ServiceRegistryTest.java Committed r1778984 Thx for the patch ! > 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 (v6.3.4#6332)