} else { throw e;
    public void saveChanges() {        _EOAssertSafeMultiThreadedAccess("saveChanges()");        boolean wasAutoLocked = autoLock("saveChanges");        savingChanges = true;        try {            super.saveChanges();        } catch(com.webobjects.eoaccess.EOGeneralAdaptorException e) {            Object delegate = delegate();            final boolean delegateImplementsDidSaveFailed =            delegate != null && EditingContextDidFailSaveChangesDelegateSelector.implementedByObject(delegate);            if(delegateImplementsDidSaveFailed) {                final Object[] parameters = new Object[] {this, e};                RuntimeException ex = (RuntimeException) ERXSelectorUtilities.invoke(EditingContextDidFailSaveChangesDelegateSelector, delegate, parameters);                if(ex != null) { throw ex; }            }        } finally {            autoUnlock(wasAutoLocked);            savingChanges = false;        }        processQueuedNotifications();    }