[ https://issues.apache.org/jira/browse/LENS-1298?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Lavkesh Lahngir updated LENS-1298: ---------------------------------- Attachment: notifysync-bug.patch > Thread should have ability to wait for Events to be processed > ------------------------------------------------------------- > > Key: LENS-1298 > URL: https://issues.apache.org/jira/browse/LENS-1298 > Project: Apache Lens > Issue Type: New Feature > Reporter: Lavkesh Lahngir > Assignee: Lavkesh Lahngir > Fix For: 2.7 > > Attachments: notifySync.patch, notifysync-bug.patch > > > When a thread notifies event service to process any event, it should have a > way to wait for it to be finished. > {code} > LensEvent event = new LensEvent(); > synchronized(event) { > eventservice.notifyEvent(event); > event.wait(); > } > {code} > The EventHandler will do a notifyall() on the event it is done handling. > {code} > public void run() { > try { > Class<? extends LensEvent> evtClass = event.getClass(); > // Call listeners directly listening for this event type > handleEvent(eventListeners.get(evtClass), event); > Class<?> superClass = evtClass.getSuperclass(); > // Call listeners which listen of super types of this event type > while (LensEvent.class.isAssignableFrom(superClass)) { > if (eventListeners.containsKey(superClass)) { > handleEvent(eventListeners.get(superClass), event); > } > superClass = superClass.getSuperclass(); > } > } finally { > synchronized (event) { > event.notifyAll(); > } > } > } > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)