[
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)