public void run() {
   synchronized (lock) {
     state = STATE_STARTED;
     lock.notifyAll();
   }
   try {
     if (waitTime != 0) {
       Thread.sleep(waitTime);
     }
     _jobQueue.enter(_disposeId);
   } catch (Throwable e) {
   }
   synchronized (lock) {
     state = STATE_DONE;
     lock.notifyAll();
   }
 }