Back to Intellij Community

InstanceGuardedByStatic

java/java-impl/resources/inspectionDescriptions/InstanceGuardedByStatic.html

2025.3-rc-2826 B
Original Source

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