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

Ranjan George updated COLLECTIONS-697:
--------------------------------------
    Description: 

I just noticed that it is not explicitly mentioned in the JavaDoc that 
modifying the underlying list of a FixedSizeList would actually land up 
modifying the list of the constructed FixedSizeList.  Not sure if this was by 
design, but at the very list I think the JavaDoc should caution against this.

Following is a test case that written that you could use to check this.

{code:java}

public void testAllowsMutationOfUnderlyingCollection() {

 List<String> decoratedList = new ArrayList<>();
 decoratedList.add("item 1");
 decoratedList.add("item 2");
 //
 FixedSizeList<String> fixedSizeList = 
FixedSizeList.fixedSizeList(decoratedList);
 int sizeBefore = fixedSizeList.size();
 //
 boolean changed = decoratedList.add("New Value");
 Assert.assertTrue(changed);
 //
 Assert.assertEquals("Modifying an the underlying list is allowed",
 sizeBefore + 1, fixedSizeList.size());
}

{code}

  was:
{code}

public void testAllowsMutationOfUnderlyingCollection() {

 List<String> decoratedList = new ArrayList<>();
 decoratedList.add("item 1");
 decoratedList.add("item 2");
 //
 FixedSizeList<String> fixedSizeList = 
FixedSizeList.fixedSizeList(decoratedList);
 int sizeBefore = fixedSizeList.size();
 //
 boolean changed = decoratedList.add("New Value");
 Assert.assertTrue(changed);
 //
 Assert.assertEquals("Modifying an the underlying list is allowed",
 sizeBefore + 1, fixedSizeList.size());
}

{code}


> JavaDoc for FixedSizeList should warn modifying the underlying list is still 
> allowed and is not prevented
> ---------------------------------------------------------------------------------------------------------
>
>                 Key: COLLECTIONS-697
>                 URL: https://issues.apache.org/jira/browse/COLLECTIONS-697
>             Project: Commons Collections
>          Issue Type: Bug
>            Reporter: Ranjan George
>            Priority: Major
>
> I just noticed that it is not explicitly mentioned in the JavaDoc that 
> modifying the underlying list of a FixedSizeList would actually land up 
> modifying the list of the constructed FixedSizeList.  Not sure if this was by 
> design, but at the very list I think the JavaDoc should caution against this.
> Following is a test case that written that you could use to check this.
> {code:java}
> public void testAllowsMutationOfUnderlyingCollection() {
>  List<String> decoratedList = new ArrayList<>();
>  decoratedList.add("item 1");
>  decoratedList.add("item 2");
>  //
>  FixedSizeList<String> fixedSizeList = 
> FixedSizeList.fixedSizeList(decoratedList);
>  int sizeBefore = fixedSizeList.size();
>  //
>  boolean changed = decoratedList.add("New Value");
>  Assert.assertTrue(changed);
>  //
>  Assert.assertEquals("Modifying an the underlying list is allowed",
>  sizeBefore + 1, fixedSizeList.size());
> }
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to