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