Reports @GuardedBy annotations in which the guarding field is not final.

Guarding on a non-final field may result in unexpected race conditions, as locks will be held on the value of the field (which may change), rather than the field itself.

Example:


    private ReadWriteLock lock = new ReentrantReadWriteLock(); //not final guarding field
    private Object state;

    @GuardedBy("lock")
    public void bar() {
        state = new Object();
    }

Supported @GuardedBy annotations are: