[ https://issues.apache.org/jira/browse/FELIX-4989?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Guillaume Nodet resolved FELIX-4989. ------------------------------------ Resolution: Fixed Assignee: Guillaume Nodet Fix Version/s: resolver-1.6.0 Committing to https://svn.apache.org/repos/asf/felix/trunk ... M resolver/src/main/java/org/apache/felix/resolver/util/CopyOnWriteList.java Committed r1696529 > 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 > Assignee: Guillaume Nodet > Fix For: resolver-1.6.0 > > 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)