Files
openide/java/java-impl/resources/inspectionDescriptions/NonFinalGuard.html
Leonid Shalupov 40795fe787 IJI-2422: community/java: move resources under resources root
GitOrigin-RevId: 8b2b63fc6db476ca0c2cfe5cadd84db6c4236d0f
2025-02-05 04:43:28 +00:00

28 lines
1020 B
HTML

<html>
<body>
Reports <code>@GuardedBy</code> annotations in which the guarding field
is not <code>final</code>.
<p>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.</p>
<p>Example:</p>
<pre><code>
private ReadWriteLock lock = new ReentrantReadWriteLock(); //not final guarding field
private Object state;
@GuardedBy("lock")
public void bar() {
state = new Object();
}
</code></pre>
<!-- tooltip end -->
<p>Supported <code>@GuardedBy</code> annotations are:</p>
<ul>
<li><code>net.jcip.annotations.GuardedBy</code></li>
<li><code>javax.annotation.concurrent.GuardedBy</code></li>
<li><code>org.apache.http.annotation.GuardedBy</code></li>
<li><code>com.android.annotations.concurrency.GuardedBy</code></li>
<li><code>androidx.annotation.GuardedBy</code></li>
<li><code>com.google.errorprone.annotations.concurrent.GuardedBy</code></li>
</ul>
</body>
</html>