Inspectopedia
 
2024.3

Non-final '@GuardedBy' field

Warning
New
Last modified: 03 December 2024

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:

Supported @GuardedBy annotations are:

  • net.jcip.annotations.GuardedBy

  • javax.annotation.concurrent.GuardedBy

  • org.apache.http.annotation.GuardedBy

  • com.android.annotations.concurrency.GuardedBy

  • androidx.annotation.GuardedBy

  • com.google.errorprone.annotations.concurrent.GuardedBy