Reports on any call to wait(), notify() or notifyAll() not made inside a corresponding synchronized statement or synchronized method. Calling wait(), notify() or notifyAll() on an object without holding a lock on that object will result in an IllegalMonitorStateException being thrown. Such a construct is not necessarily an error, as the necessary lock may be acquired before the containing method is called, but its worth looking at.