[2.17.0] GuardedBy on lambda
- Dominant language
- Java
- Stars
- 7.2k
- Forks
- 820
- Avg merge
- 5h 9m
- Merged PRs (30d)
- 50
Description
The constructor assigns a `Consumer` to which is invoked under a lock. However the checker now fails by assuming it was invoked in the constructor.
```java
final Consumer> accessPolicy;
...
accessPolicy = (evicts() || expiresAfterAccess()) ? this::onAccess : e -> {};
...
/** Drains the read buffer. */
@GuardedBy("evictionLock")
void drainReadBuffer() {
if (!skipReadBuffer()) {
readBuffer.drainTo(accessPolicy);
}
}
```
```console
/Users/ben/projects/caffeine/caffeine/src/main/java/com/github/benmanes/caffeine/cache/BoundedLocalCache.java:270: error: [GuardedBy] This access should be guarded by 'this.evictionLock', which is not currently held
accessPolicy = (evicts() || expiresAfterAccess()) ? this::onAccess : e -> {};
^
(see https://errorprone.info/bugpattern/GuardedBy)
1 error
```
Contributor guide
Assessment
This issue has not been assessed yet.