Inspectopedia Help

Non-final '@GuardedBy' field

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.


private ReadWriteLock lock = new ReentrantReadWriteLock(); //not final guarding field private Object state; @GuardedBy("lock") public void bar() { state = new Object(); }

Supported @GuardedBy annotations are:

  • net.jcip.annotations.GuardedBy

  • javax.annotation.concurrent.GuardedBy

  • org.apache.http.annotation.GuardedBy


  • androidx.annotation.GuardedBy


Inspection Details

Available in:

IntelliJ IDEA 2023.3, Qodana for JVM 2023.3


Java, 233.SNAPSHOT

Last modified: 13 July 2023