Condition.await() への呼び出しのうち、対応する Condition.signal() または Condition.signalAll() の呼び出しが見つからないものを報告します。

対応する Condition.signal() のないスレッドで Condition.await() を呼び出すと、スレッドが中断されるか「スプリアスウェイクアップ」(偽の起床) が発生するまで、スレッドが無効になる場合があります。

このインスペクションは、現在のクラスのフィールドを対象とする呼び出しのみを報告します。

例:


  class Queue {
    private final Condition isEmpty = ...;

    void add(Object elem) {
      // ...
      // isEmpty.signal();
      // ...
    }

    void remove(Object elem) throws InterruptedException {
      // ...
      isEmpty.await(); //'await()' には対応する 'signal()'/'signalAll()' 呼び出しが含まれていません
      // ...
    }
  }