'await()' not called in loop
Reports java.util.concurrent.locks.Condition.await()
not being called inside a loop.
await()
and related methods are normally used to suspend a thread until some condition becomes true. As the thread could have been woken up for a different reason, the condition should be checked after the await()
call returns. A loop is a simple way to achieve this.
Example:
void acquire(Condition released) throws InterruptedException {
released.await();
}
Good code should look like this:
void acquire(Condition released) throws InterruptedException {
while (acquired) {
released.await();
}
}
Locating this inspection
- By ID
Can be used to locate inspection in e.g. Qodana configuration files, where you can quickly enable or disable it, or adjust its settings.
AwaitNotInLoop- Via Settings dialog
Path to the inspection settings via IntelliJ Platform IDE Settings dialog, when you need to adjust inspection settings directly from your IDE.
Availability
- By default bundled with
- Can be installed with plugin
Java, 241.18072
Last modified: 18 June 2024