Inspectopedia Help

Static member guarded by instance field or this

Reports @GuardedBy annotations on static fields or methods in which the guard is either a non-static field or this.

Guarding a static element with a non-static element may result in excessive concurrency, multiple threads may be able to access the guarded field simultaneously by locking in different object contexts.

Example:

private ReadWriteLock lock = new ReentrantReadWriteLock(); @GuardedBy("lock") public static void bar() { // ... }

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

By default bundled with:

IntelliJ IDEA 2024.1, Qodana for JVM 2024.1,

Can be installed with plugin:

Java, 241.16690

Last modified: 29 April 2024