#vulnerable code 
                             public void await() throws InterruptedException {
		while (!isDone()) {
			synchronized (signal) {
				signal.wait();
			}
		}
	} 
                            #location 2 
                            #vulnerability type THREAD_SAFETY_VIOLATION
#fixed code
                             public void await() throws InterruptedException {
		if (!isDone()) {
			synchronized (signal) {
				while (!isDone()) {
					signal.wait();
				}
			}
		}
	}