[ 
https://issues.apache.org/jira/browse/COLLECTIONS-444?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Thomas Neidhart updated COLLECTIONS-444:
----------------------------------------
    Fix Version/s: 3.2.2

> SetUniqueList may become inconsistent
> -------------------------------------
>
>                 Key: COLLECTIONS-444
>                 URL: https://issues.apache.org/jira/browse/COLLECTIONS-444
>             Project: Commons Collections
>          Issue Type: Bug
>          Components: List
>    Affects Versions: 3.2.1
>            Reporter: Thomas Vahrst
>             Fix For: 3.2.2, 4.0-alpha1, 4.0
>
>
> I found this bug during my work on issue COLLECTIONS-310 : 
> When you 'set' an element to a position that contains this element, it is 
> removed from the internal set. This leads to the situation that 
> - invocing get() returns the element
> - invocing contains() returns false.
> Extending the existing test method for set:
> {code}
>    public void testSet() {
>         final SetUniqueList<E> lset = new SetUniqueList<E>(new 
> ArrayList<E>(), new HashSet<E>());
>         // Duplicate element
>         final E obj1 = (E) new Integer(1);
>         final E obj2 = (E) new Integer(2);
>         final E obj3 = (E) new Integer(3);
>         lset.add(obj1);
>         lset.add(obj2);
>         lset.set(0, obj1);
>         assertEquals(2, lset.size());
>         assertSame(obj1, lset.get(0));
>         assertSame(obj2, lset.get(1));
>         assertTrue(lset.contains(obj1));  // fails !
>         assertTrue(lset.contains(obj2));
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to