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

ben-manes / caffeine / #5566
100%

Build:
DEFAULT BRANCH: master
Ran 01 Jul 2026 01:01AM UTC
Jobs 1
Files 78
Run time 1min
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

30 Jun 2026 09:12PM UTC coverage: 99.988%. Remained the same
#5566

push

github

ben-manes
Use immutable entries in EntrySet.removeIf (match CHM)

ConcurrentHashMap and Guava hand removeIf's predicate an immutable
snapshot so setValue throws (JDK-8078726); only iterator/toArray are
write-through. Caffeine diverged: the sync views passed a
WriteThroughEntry (unbounded passed a raw map entry whose setValue
silently bypassed notifications), and the async raw view inherited the
default removeIf, removing positionally rather than conditionally.

Hand the predicate a Map.entry() snapshot and remove conditionally in
the bounded and unbounded views; the async views delegate to the inner
cache's entrySet().removeIf, mirroring their values().removeIf.

The Guava adapter's forwarding views already delegated removeIf but
inherited the JDK default forEach/spliterator/stream (Guava's
Forwarding classes don't forward Java-8 defaults), so the spliterator
reported SIZED instead of Caffeine's CONCURRENT. Delegate forEach and
spliterator (covering stream too) on the views and forEach on the map
view, and add tests pinning the removeIf immutable-snapshot contract
and the CONCURRENT characteristic.

4048 of 4056 branches covered (99.8%)

27 of 27 new or added lines in 4 files covered. (100.0%)

8258 of 8259 relevant lines covered (99.99%)

1.0 hits per line

Jobs
ID Job ID Ran Files Coverage
1 #5566.1 01 Jul 2026 01:01AM UTC 78
99.99
Source Files on build #5566
  • Tree
  • List 78
  • Changed 4
  • Source Changed 4
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • d577256d on github
  • Prev Build on master
  • Next Build on master
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