void fireObserver(DataEvent event) { fireObserver(event, true);
void fireObserver(DataEvent event, boolean errorOnSave) { ObserverEntry old = m_firing; try { for (Iterator it = m_observers.iterator(); it.hasNext(); ) { ObserverEntry entry = (ObserverEntry) it.next(); DataObserver observer = entry.getObserver(); if (entry.isFiring(event)) { if (errorOnSave) { throw new PersistenceException( "Loop detected while firing a DataObserver. " + "This probably resulted from calling the save " + "method of a data object from within a " + "beforeSave observer registered on that " + "same data object, or the analogous situation " + "with delete and beforeDelete/afterDelete." ); } } else { try { entry.setFiring(event); m_firing = entry; event.invoke(observer); } finally { entry.clearFiring(event); } } } } finally { m_firing = old; }
    void fireObserver(DataEvent event) {        fireObserver(event, true);    }