fixes #3198 + unit test

- fix for issue 3198.
- unit test for issue 3198.
- update for other tests.

*when removed entry from map, then listener event.getValue must return null, event.getOldValue must return removed value.
i think, we don't need this method. i couldn't find other usage.