title: passing EventListener over RMI
body: <p>I need to run a task inside a RMI service and it needs an event listener implemented for it. Right now when I pass the EventListener over RMI it does execute the call however the callback method of the Listener is not being invoked and it remains in the wait state. How should I get this to work?</p>
  
  <pre><code>public class MyEventListener implements Serializable, ABCEventListener {
  
      private static final long serialVersionUID = -4686421592620210489L;
      private boolean registrationCompleted = false;
  
      public boolean getRegistrationCompleted(){
          return registrationCompleted;
      }
      @Override
      public void onSomethingDiscovered(Agent agent) {            
          System.out.println("Added agent "+agent.toString()+" to the set \n");
  
      }
  
      @Override
      public void onDiscoveryComplete() {
          this.registrationCompleted = true;
          System.out.println("Discovery process completed. \n");
      }
  }
  </code></pre>
  
  <p>Here is where I pass the eventlistener to the RMI service 'ds'</p>
  
  <pre><code>MyEventListener myEL = new MyEventListener();
  ds.discoverAsync(val, myEL);
  waitForRegistration();
  .
  .
      private void waitForRegistration() {
  
      try{
      while(!dcev.getRegistrationCompleted()){
          System.out.println("Please wait...");
          Thread.sleep(15000);
      }
      }catch(InterruptedException e){
          logger.error("InterruptedException raised while waiting for registration",e);
          e.printStackTrace();
      }
  
  }
  </code></pre>