class Dispatcher { public void run() { while (dispatch) { try { ResourceEvent event = queue.getNextEvent(); if (queue.debug) System.out.println("[QUEUE] : getNextEvent()"); Object src = event.getSource(); ResourceReference rr = null; try { FramedResource source = null; if (src instanceof ResourceReference) { rr = (ResourceReference)src; Resource res = rr.lock(); if (res instanceof FramedResource) source = (FramedResource) res; else source = null; } else if (src instanceof FramedResource) { source = (FramedResource) src; } if (source != null) { if (queue.debug) System.out.println("[QUEUE] : processEvent "+ event); source.processEvent(event); } } catch (InvalidResourceException ex) { if (queue.debug) { System.err.println("Exception occurred "+ "in EventDispatcher:"); ex.printStackTrace(); } } finally { if (rr != null) rr.unlock(); } } catch (ThreadDeath death) { return; } catch (Throwable e) { if (queue.debug) { System.err.println("Exception occurred "+ "during event dispatching:"); e.printStackTrace(); } } } }
}
|