I don\'t understand the rationale of this code, taken from javax.swing.event.EventListenerList docs:
protected void fireFooXXX() { // Guaranteed to retur
to answer #2: Every second listener is called because the array that EventListenerList uses is set populated as an array of Listener-Type, Listener-Instance pairs.