In the current implementation MatcherEditor's interaction with FilterList causes
events to be fired outside of control of ListEventPublisher. This can cause all
sorts of problems if the MatcherEditor change event fires as a result of an
ongoing event pipeline update.
I'm attaching a unit test that demonstrates the issue.
For now, the solution is to get the MatcherEditor change event off of the thread
that is processing the event pipeline update. This is hard to do in the general
case because a given pipeline update could originate from any thread. The only
way to really guarantee this is to spawn a new thread in the MatcherEditor and
have it obtain a write lock before firing it's event into the FilterList.