private synchronized void waitTillComplete() {
   while (!completed) {
     try {
       super.wait();
     } catch (InterruptedException ie) {
     }
   }
 }
 private synchronized void notifyCompleted() {
   completed = true;
   super.notify();
 }