Reports calls to wait()
not made inside a corresponding synchronized
statement or synchronized method.
Calling wait()
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.