@Override
    protected void fireEvent(int type, String propName, Object propValue, boolean beforeUpdate) {
    """
	Creates an event and calls {@link ConfigurationListener#configurationChanged(ConfigurationEvent)}
	for all listeners while catching Throwable.
    """
        if (listeners == null || listeners.size() == 0) {
            return;
        }        
        ConfigurationEvent event = createEvent(type, propName, propValue, beforeUpdate);
        for (ConfigurationListener l: listeners)
        {
            try {
                l.configurationChanged(event);
            } catch (ValidationException e) {
                if (beforeUpdate) {
                    throw e;
                } else {
                    logger.error("Unexpected exception", e);                    
                }
            } catch (Throwable e) {
                logger.error("Error firing configuration event", e);
            }
        }
    }
@Override
    protected void fireEvent(int type, String propName, Object propValue, boolean beforeUpdate) {
        if (listeners == null || listeners.size() == 0) {
            return;
        }        
        ConfigurationEvent event = createEvent(type, propName, propValue, beforeUpdate);
        for (ConfigurationListener l: listeners)
        {
            try {
                l.configurationChanged(event);
            } catch (ValidationException e) {
                if (beforeUpdate) {
                    throw e;
                } else {
                    logger.error("Unexpected exception", e);                    
                }
            } catch (Throwable e) {
                logger.error("Error firing configuration event", e);
            }
        }
    }
@ Override protected void fireEvent ( int type , String propName , Object propValue , boolean beforeUpdate ) { if ( listeners == null || listeners . size ( ) == 0 ) { return ; } ConfigurationEvent event = createEvent ( type , propName , propValue , beforeUpdate ) ; for ( ConfigurationListener l : listeners ) { try { l . configurationChanged ( event ) ; } catch ( ValidationException e ) { if ( beforeUpdate ) { throw e ; } else { logger . error ( "Unexpected exception" , e ) ; } } catch ( Throwable e ) { logger . error ( "Error firing configuration event" , e ) ; } } }
Creates an event and calls {@link ConfigurationListener#configurationChanged(ConfigurationEvent)}
for all listeners while catching Throwable.
Creates an event and calls {