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

Reply via email to