Map.Entry<KernelEventFilter, Map<Object, List<KernelEventListener>>> registryEntry = i.next();
Map<Object, List<KernelEventListener>> handbacks = registryEntry.getValue();
if (handbacks != null)
{
KernelEventFilter filter = null;
Object filterObject = registryEntry.getKey();
if (filterObject != NULL_FILTER)
filter = (KernelEventFilter) filterObject;
for (Iterator<Map.Entry<Object, List<KernelEventListener>>> j = handbacks.entrySet().iterator(); j.hasNext();)
{
Map.Entry<Object, List<KernelEventListener>> handbackEntry = j.next();
List<KernelEventListener> listeners = handbackEntry.getValue();
if (listeners != null)
{
Object handback = handbackEntry.getKey();
if (handback == NULL)
handback = null;
for (ListIterator<KernelEventListener> k = listeners.listIterator(); k.hasNext();)
{
KernelEventListener listener = k.next();
try
{
if (filter == null || filter.wantEvent(event, handback))
fireKernelEvent(listener, event, handback);
}
catch (Throwable t)
{
log.debugf(t, "Ignored unhandled throwable: ");