Inspectopedia Help

Instance member guarded by static field

Reports @GuardedBy annotations on instance fields or methods in which the guard is a static field. Guarding a non-static by a static may result in excessive lock contention, as access to each locked field in any object instance will prevent simultaneous access to that field in every object instance.

Example:

private static ReadWriteLock lock = new ReentrantReadWriteLock(); //static 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

  • com.android.annotations.concurrency.GuardedBy

  • androidx.annotation.GuardedBy

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

Inspection Details

Available in:

IntelliJ IDEA 2023.3, Qodana for JVM 2023.3

Plugin:

Java, 233.SNAPSHOT

Last modified: 13 July 2023