public void invokeEventThreadCompletes(List cleanups, Component comp, Event evt,
List errs, boolean silent) {
if (cleanups == null || cleanups.isEmpty()) return;
for (Iterator it = cleanups.iterator(); it.hasNext();) {
final EventThreadCleanup fn = (EventThreadCleanup)it.next();
try {
fn.complete(comp, evt);
} catch (Throwable ex) {
if (errs != null) errs.add(ex);
if (!silent)
log.error("Failed to invoke "+fn, ex);
}