I haven't had this be a problem for me in production anywhere, but I
noticed that when remove(Object) is called, it'll remove the value
from the top-most map in the stack. This then means any queries for
the key will fall-thru to lower maps, which is definately *not* what
should occur.
Additionally, entrySet() returns an unmodifiable Collection of
Map.Entry. However, those entries point to the *original* map. If
someone called setValue() on the entry, it would modify the original
map, instead of inserting a value into the top-most map.
If others concur with my reading/understanding, then I'll go about
adding test cases which expose this, then fixing it.
- MapStack(which extends MapContext) does not implement Map st... Adam Heath
-