Details
-
Bug
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
framework-5.6.0
-
None
Description
Javadoc for ServiceReference#getUsingBundles() states
Specifically, this method returns the bundles whose usage count for that service is greater than zero.
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:
// 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()
Expected:
ServiceReference#getUsingBundles() doesn't return usages with 0 count
Attachments
Attachments
Issue Links
- is related to
-
FELIX-6178 org.osgi.framework.Bundle#getServicesInUse returns services with usage count = 0
- Closed