'notify()' or 'notifyAll()' without corresponding state change
Reports Object.notify()
or Object.notifyAll()
being called without any detectable state change occurring.
Normally, Object.notify()
and Object.notifyAll()
are used to inform other threads that a state change has occurred. That state change should occur in a synchronized context that contains the Object.notify()
or Object.notifyAll()
call, and prior to the call. While not having such a state change isn't necessarily incorrect, it is certainly worth examining.
Example:
synchronized (this) {
notify();
}
// no state change
synchronized (this) {
notify(); // this notify might be redundant
}
Inspection Details | |
---|---|
Available in: | IntelliJ IDEA 2023.3, Qodana for JVM 2023.3 |
Plugin: | Java, 233.SNAPSHOT |
Last modified: 13 July 2023