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(); } }