...
Failure to encase the wait()
or await()
methods inside a while
loop can lead to indefinite blocking and denial of service (DoS).
Rule | Severity | Likelihood | Remediation Cost | Priority | Level |
---|---|---|---|---|---|
THI03-J | Low | Unlikely | Medium | P2 | L3 |
Automated Detection
Tool | Version | Checker | Description | ||||||
---|---|---|---|---|---|---|---|---|---|
CodeSonar |
| FB.MT_CORRECTNESS.WA_AWAIT_NOT_IN_LOOP FB.MT_CORRECTNESS.WA_NOT_IN_LOOP | Condition.await() not in loop Wait not in loop | ||||||
Parasoft Jtest |
|
|
| TRS.UWIL | Implemented | ||||||
SonarQube Java Plugin |
| S2274 |
- "Object.wait(...)" and "Condition.await(...)" should be called inside a "while" loop | Implemented |
Bibliography
[API 2014] | |
Item 50, "Never Invoke | |
Section 14.2, "Using Condition Queues" | |
[Lea 2000] | Section 1.3.2, "Liveness" |
...
...