 
                            Guidelines
CON07-J. Do not invoke a superclass method or constructor from a synchronized region in the subclass
CON01-J. Avoid using ThreadGroup APIs
CON02-J. Facilitate thread reuse by using Thread Pools
CON10-J. Do not assume that elements of an array declared volatile are volatile
CON08-J. Do not call overridable methods from synchronized regions
CON05-J. Use a unique channel to acquire locks on any file
CON09-J. Methods that override synchronized methods must also possess synchronization capabilities
CON05-J. Do not defer a thread that is holding a lock
CON04-J. Ensure that threads do not fail during activation
CON03-J. Use the private lock object idiom instead of intrinsic synchronization
CON00-J. Synchronize access to shared mutable variables
CON31-J. Always invoke wait() and await() methods inside a loop
CON32-J. Use notifyAll() instead of notify() to resume waiting threads
CON33-J. Address the shortcomings of the Singleton design pattern
CON11-J. Avoid deadlock by requesting locks in the proper order
CON12-J. Do not try to force thread shutdown
CON01-J. Always synchronize on the appropriate object
CON37-J. Never apply a lock to methods making network calls
CON06-J. Ensure atomicity of thread-safe code
CON14-J. Ensure atomicity of 64-bit operations
CON13-J. Do not let the "this" reference escape during object construction
CON02-J. Do not use background threads during class initialization
CON15-J. Ensure actively held locks are released on exceptional conditions
CON43-J. Use the correct form of the double-checked locking idiom
CON16-J. Do not expect sleep() and yield() methods to have any synchronization semantics
Risk Assessment Summary
Recommendations
| Recommendation | Severity | Likelihood | Remediation Cost | Priority | Level | 
|---|---|---|---|---|---|
| CON00- J | low | likely | high | P3 | L3 | 
| CON01- J | low | probable | low | P6 | L2 | 
| CON02- J | low | probable | high | P2 | L3 | 
| CON03- J | low | probable | medium | P4 | L3 | 
| CON04- J | low | likely | high | P3 | L3 | 
| CON06- J | low | probable | medium | P4 | L3 | 
| CON07- J | low | probable | medium | P4 | L3 | 
| CON08- J | low | probable | medium | P4 | L3 | 
| CON10 - J | medium | probable | medium | P8 | L2 | 
Rules
| Rules | Severity | Likelihood | Remediation Cost | Priority | Level | 
|---|---|---|---|---|---|
| CON30- J | medium | probable | medium | P8 | L2 | 
| CON31- J | low | unlikely | medium | P2 | L3 | 
| CON32- J | low | unlikely | medium | P2 | L3 | 
| CON33- J | low | unlikely | medium | P2 | L3 | 
| CON34- J | low | likely | high | P3 | L3 | 
| CON35- J | low | probable | medium | P4 | L3 | 
| CON36- J | medium | probable | medium | P8 | L2 | 
| CON37- J | low | probable | high | P2 | L3 | 
| CON38- J | low | probable | medium | P4 | L3 | 
| CON39- J | low | probable | medium | P4 | L3 | 
| CON41-J | low | likely | high | P3 | L3 | 
| CON42-J | low | likely | low | P9 | L2 | 
| CON43- J | low | probable | medium | P4 | L3 | 
| CON44- J | low | probable | medium | P4 | L3 | 
IDS05-J. Library methods should validate their parameters The CERT Sun Microsystems Secure Coding Standard for Java CON07-J. Do not invoke a superclass method or constructor from a synchronized region in the subclass