wait() の呼び出しのうち、対応する synchronized ステートメントまたは synchronized メソッド内にないものを報告します。

あるオブジェクトに対してロックを保持せずにそのオブジェクトに対して wait() を呼び出すと、IllegalMonitorStateException がスローされます。 このようなコンストラクトは必ずしも間違いではありませんが、一度確認することをおすすめします。含んでいるメソッドが呼び出される前に必要なロックが取得される可能性があるためです。