if (null != listeners) {
Iterator<InhabitantListener> iter = listeners.iterator();
while (iter.hasNext()) {
InhabitantListener listener = iter.next();
try {
boolean keepListening = listener.inhabitantChanged(eventType, this);
if (!keepListening) {
removeInhabitantListener(listener);
}
} catch (Exception e) {
// don't percolate the exception since it may negatively impact processing