commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Henri Yandell (JIRA)" <j...@apache.org>
Subject [jira] Commented: (COLLECTIONS-307) SetUniqueList.subList().contains() method checks against full parent list, not sublist range
Date Mon, 29 Dec 2008 05:10:44 GMT

    [ https://issues.apache.org/jira/browse/COLLECTIONS-307?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12659497#action_12659497
] 

Henri Yandell commented on COLLECTIONS-307:
-------------------------------------------

Thanks for the report Christian. The bug is because the subList call doesn't create a new
set to represent uniqueness but instead uses the parent list's set. Easy enough to fix if
we hardcode the type of set. Harder to do if we want to use the same Set as originally passed
in as there's no guaranteed cloning method.

Tempted to do a helper method of:

if instanceof Cloneable
  clone
else if empty Constructor
  construct and use addAll
else use defaultValue (ie: HashSet)

> SetUniqueList.subList().contains() method checks against full parent list, not sublist
range
> --------------------------------------------------------------------------------------------
>
>                 Key: COLLECTIONS-307
>                 URL: https://issues.apache.org/jira/browse/COLLECTIONS-307
>             Project: Commons Collections
>          Issue Type: Bug
>          Components: List
>    Affects Versions: 3.2
>            Reporter: Christian Semrau
>            Priority: Minor
>             Fix For: 3.3
>
>
> The view returned by the subList() method of a SetUniqueList checks contains() against
the set of the original list.
> As shown by the following test snippet.
> 		List list = new ArrayList();
> 		List uniqueList = SetUniqueList.decorate(list);
> 		uniqueList.add("Hello");
> 		uniqueList.add("World");
> 		List subList = list.subList(0, 0);
> 		List subUniqueList = uniqueList.subList(0, 0);
> 		assertFalse(subList.contains("World")); // passes
> 		assertFalse(subUniqueList.contains("World")); // fails

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message