// result in a memory leak per CAY-770. This seemed to happen when lots of
// invocations got registered, but no events were dispatched (hence the stale
// invocation removal during dispatch did not happen)
Iterator<Invocation> it = invocations.iterator();
while (it.hasNext()) {
Invocation i = it.next();
if (i.getTarget() == null) {
it.remove();
}
}
invocations.add(invocation);