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()' 呼び出しが含まれていません
// ...
}
}