...
Blocking or lengthy operations performed within synchronized regions could result in a deadlocked or unresponsive system.
Rule | Severity | Likelihood | Detectable | RepairableRemediation Cost | Priority | Level |
|---|---|---|---|---|---|---|
LCK09-J | Low | Probable | No | HighNo | P2 | L3 |
Automated Detection
Some static analysis tools are capable of detecting violations of this rule.
| Tool | Version | Checker | Description | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| CodeSonar |
| JAVA.CONCURRENCY.STARVE.BLOCKING | Blocking in Critical Section (Java) | |||||||||
| Klocwork |
| JD.LOCK.NOTIFY JD.LOCK.SLEEP JD.LOCK.WAIT | FB.MT_CORRECTNESS.SWL_SLEEP_WITH_LOCK_HELD | Method calls Thread.sleep() with a lock held | ||||||||
| Parasoft Jtest |
| TRSCERT.LCK09.TSHL | BDCERT. | TRSLCK09. | TSHLTSHL2 | Do not use blocking methods while holding a lock Do not call 'Thread.sleep()' while holding a lock since doing so can cause poor performance and deadlocks | ||||||
| PVS-Studio |
| V6095 | ||||||||||
| ThreadSafe |
| CCE_LK_LOCKED_BLOCKING_CALLS | Implemented | |||||||||
| SonarQube |
| S2276 | Implemented |
Related Guidelines
...