}
try {
// Handle exceptions on a per listener basis. If we have
// badly behaving listeners, we don't want one listener
// to prevent the other listeners from receiving events.
strategy.broadcastChanges(listener, changes);
} catch (Exception e) {
LOGGER.warn("BADLY BEHAVING LISTENER: {} has been removed",
e.getMessage(), e);
listenerMap.remove(listener);
}