public synchronized Exception[] fireEvent(Object source, Object related,
ClassMetaData meta, int type) {
boolean reentrant = _firing;
_firing = true;
List<Exception> exceptions = (reentrant) ? new LinkedList<Exception>() : _exceps;
MetaDataDefaults def = meta.getRepository().getMetaDataFactory().
getDefaults();
boolean callbacks = def.getCallbacksBeforeListeners(type);
if (callbacks)
makeCallbacks(source, related, meta, type, exceptions);
LifecycleEvent ev = (LifecycleEvent) fireEvent(null, source, related,
type, _listeners, false, exceptions);