public synchronized void fireEvent ( Event evt ) { if ( evt == null ) { return ; } // Process global listeners for ( Enumeration < EventListener > keys = globalListeners . elements ( ) ; keys . hasMoreElements ( ) ; ) { EventListener mListener = keys . nextElement ( ) ; try { mListener . processEvent ( evt ) ; } catch ( Throwable t ) { } } String sourceThread = Thread . currentThread ( ) . getName ( ) ; for ( Enumeration < String > keys = keyedListeners . keys ( ) ; keys . hasMoreElements ( ) ; ) { String key = ( String ) keys . nextElement ( ) ; // We don't want badly behaved listeners to throw uncaught // exceptions and upset other listeners try { String prefix = "" ; if ( sourceThread . indexOf ( ' ' ) > - 1 ) { prefix = sourceThread . substring ( 0 , sourceThread . indexOf ( ' ' ) ) ; if ( key . startsWith ( prefix ) ) { EventListener mListener = keyedListeners . get ( key ) ; mListener . processEvent ( evt ) ; } } } catch ( Throwable thr ) { // log.error("Event failed.", thr); } } }
Send an SSH Event to each registered listener