notify()
and notifyAll()
not within a corresponding
synchronized statement or synchronized method.
Calling these methods 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 it's worth looking at.