• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

ben-manes / caffeine / #5444 / 1
100%
master: 100%

Build:
Build:
LAST BUILD BRANCH: v3.dev
DEFAULT BRANCH: master
Ran 10 May 2026 06:25AM UTC
Files 78
Run time 2s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

10 May 2026 06:10AM UTC coverage: 99.902% (-0.1%) from 100.0%
#5444.1

push

github

ben-manes
Close the loadAll/close TOCTOU window with a sentinel under the configuration lock

CacheProxy.loadAll and LoadingCacheProxy.loadAll registered their future
with inFlight after runAsync returned. A concurrent close() could sample
inFlight while it was still empty, return without waiting, then watch the
loadAll's listener fire after close() had already returned — violating
the documented "close waits for all in-flight loads" invariant.

Use a sentinel CompletableFuture: add it to inFlight under
synchronized(configuration) (the lock close() takes), then submit the
real runAsync outside the lock. The runAsync's whenComplete removes the
sentinel and completes it. If the executor rejects (close shut it down
between the lock release and the submit), a catch-all unhooks the
sentinel so close() does not block 10s for a future that never arrives.
This also keeps the lock window short, so a caller-runs executor doesn't
deadlock by running the loader inline under the lock.

Required promoting CacheProxy.configuration from private to protected
so LoadingCacheProxy can sync on the same lock.

Audit finding iss_2245e004 (.claude/reports/audit-temporal-walk-jcache).

3988 of 3996 branches covered (99.8%)

8191 of 8199 relevant lines covered (99.9%)

1.0 hits per line

Source Files on job #5444.1
  • Tree
  • List 78
  • Changed 8
  • Source Changed 8
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Build 5444
  • 053cfdde on github
  • Prev Job for on v3.dev (##5443.1)
  • Next Job for on v3.dev (##5446.1)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc