Karl Rieb created FELIX-4288:
--------------------------------
Summary: Bundle not updated when unused capabilities changed
(ResolverImpl.getResolvableRequirements)
Key: FELIX-4288
URL: https://issues.apache.org/jira/browse/FELIX-4288
Project: Felix
Issue Type: Bug
Components: Bundle Repository (OBR)
Affects Versions: bundlerepository-1.6.6
Reporter: Karl Rieb
It is common (and recommended) practice for bundles to Import the same packages
they Export. This means a bundle, if it exports any packages, always depends
on its own capabilities.
The ResolverImpl.getResolvableRequirements() ignores whether the requirements
are coming from the bundle that is trying to be updated. The resolver will
always considered the old bundle's capabilities as "used" since the old bundle
depends on itself. This prevents the resolver from performing an in-place
update on the bundle even though there may be no other bundles depending on
that capability.
To reproduce, create and deploy a bundle that exports a single package (and
imports that same package). Now create a newer version of the bundle that no
longer exports the package. Try to update the old bundle with the new one will
result in both bundles being installed (since the required capabilities don't
match). This is unexpected since no other bundles on the system depend on the
unused export.
Proposed fix would skip requirements from the resource that is trying to be
updated (performed in ResolverImpl.getResolvableRequirements()).
--
This message was sent by Atlassian JIRA
(v6.1#6144)