Threading issues
- 'notify()' or 'notifyAll()' while not synced
Reports calls to notify() and notifyAll() not within a corresponding synchronized statement or synchronized method.
- 'wait()' not in loop
Reports calls to wait() not made inside a loop.
- 'wait()' while not synced
Reports calls to wait() not made inside a corresponding synchronized statement or synchronized method.
- Access to static field locked on instance data
Reports accesses to a non-constant static field which is locked on either this or an instance field of this.
- Busy wait
Reports calls to java.lang.Thread.sleep() that occur inside loops.
- Call to System.runFinalizersOnExit()
Reports calls to System.runFinalizersOnExit().
- Call to Thread.stop(), Thread.suspend(), or Thread.resume()
Reports calls to Thread.stop(),Thread.suspend(), or Thread.resume().
- Double-checked locking
Reports double-checked locking.
- Empty 'synchronized' block
Reports synchronized statements with empty bodies.
- Nested 'synchronized' statement
Reports nested synchronized statements.
- Non-private field accessed in synchronized context
Reports non-final, non-private fields which are accessed in a synchronized context.
- Synchronization on 'this'
Reports synchronization which uses this as its lock expression.
- Synchronization on non-final field
Reports synchronized statements where the lock expression is a non-final field.
- Synchronization on variable initialized with literal
Reports synchronized blocks which lock on an object which is initialized with a literal.
- Synchronized method
Reports the synchronized modifier on methods.
- Unconditional 'wait' call
Reports wait() being called unconditionally within a synchronized context.
- Unsynchronized method overrides synchronized method
Reports non-synchronized methods overriding synchronized methods.
- While loop spins on field
Reports while loops, which spin on the value of a non-volatile field, waiting for it to be changed by another thread.