Description
Flat3Map's Entry objects will overwrite other Entry's values if Entry.setValue() is called on one. It should only overwrite the Entry at hand.
I've looked at the source, and the case statement incorrectly falls through, rather than returning like it should:
Flat3Map.java, lines 646-660:
public Object setValue(Object value) {
if (canRemove == false)
Object old = getValue();
switch (nextIndex)
return old;
}
With this code, if I set the value of the third item in the EntrySet, then all three values are set to the new value.