commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Thomas Vahrst (JIRA)" <j...@apache.org>
Subject [jira] [Created] (COLLECTIONS-444) SetUniqueList may become inconsistent
Date Mon, 25 Feb 2013 16:10:13 GMT
Thomas Vahrst created COLLECTIONS-444:
-----------------------------------------

             Summary: 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


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 is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message