[
https://issues.apache.org/jira/browse/FELIX-4989?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Thomas Watson updated FELIX-4989:
---------------------------------
Attachment: CopyOnWriteList.patch
Possible fix.
> CopyOnWriteList.removeAll(Collection<?>) is incorrect causing failures for
> multiple cardinality resolution
> ----------------------------------------------------------------------------------------------------------
>
> Key: FELIX-4989
> URL: https://issues.apache.org/jira/browse/FELIX-4989
> Project: Felix
> Issue Type: Bug
> Components: Resolver
> Environment: All
> Reporter: Thomas Watson
> Attachments: CopyOnWriteList.patch
>
>
> The method org.apache.felix.resolver.Candidates.clearCandidates(Requirement,
> Collection<Capability>) uses the List.removeAll method which is backed by the
> org.apache.felix.resolver.util.CopyOnWriteList.removeAll(Collection<?>)
> implementation.
> clearCandidates is used when a requirement has multiple cardinality and some
> subset of candidates causes a uses constraint violation. The clearCandidates
> method will remove the offending capabilities as long as there is at least
> one remaining capability that does not cause a uses constraint violation.
> The issue is the CopyOnWriteList.removeAll is not correct. If the last
> element in the list is the only element to be removed then the logic ends up
> removing all elements (by constructing and empty data array).
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)