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

ben-manes / caffeine
100%
master: 100%

Build:
Build:
LAST BUILD BRANCH: v3.dev
DEFAULT BRANCH: master
Repo Added 15 Dec 2014 11:20PM UTC
Files 78
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

LAST BUILD ON BRANCH v3.dev
branch: v3.dev
CHANGE BRANCH
x
Reset
  • v3.dev
  • 05a040c2478341bab8a58a02b3dc1fe14d626d72
  • 2.5.6
  • Gil
  • adaptive
  • async-loader
  • ben/issue30
  • ben/spacing
  • buffer
  • cache2k
  • clockpro
  • codeql
  • dependabot/github_actions/JetBrains/qodana-action-2023.1.4
  • dependabot/github_actions/JetBrains/qodana-action-61b94e7e3a716dcb9e2030cfd79cd46149d56c26
  • dependabot/github_actions/codecov/codecov-action-3.1.3
  • dependabot/github_actions/github/codeql-action-2.3.4
  • dependabot/gradle/com.gradle.common-custom-user-data-gradle-plugin-1.9
  • dependabot/gradle/com.gradle.enterprise-3.14
  • dependabot/gradle/de.thetaphi-forbiddenapis-3.6
  • dependabot/gradle/pmd-7.0.0-rc4
  • expiring_map
  • expiry
  • gil
  • gilga
  • gradient
  • guava
  • jctools
  • juherr
  • master
  • memory
  • orm
  • penalties
  • solr
  • testng
  • tmp
  • travis
  • v1.0
  • v1.0.1
  • v1.1.0
  • v1.2.0
  • v1.3.0
  • v1.3.1
  • v1.3.2
  • v1.3.3
  • v2.0.0
  • v2.0.1
  • v2.0.2
  • v2.0.3
  • v2.1.0
  • v2.2.0
  • v2.2.2
  • v2.2.4
  • v2.3.2
  • v2.3.4
  • v2.5.2
  • v2.5.3
  • v2.5.4
  • v2.5.5
  • v2.6.1
  • v2.7.0
  • v2.8.0
  • v2.8.1
  • v2.8.2
  • v2.8.3
  • v2.8.4
  • v2.8.5
  • v2.dev
  • v3.0.5
  • v3.0.6
  • v3.1.0
  • v3.1.1
  • v3.1.2
  • v3.1.4
  • v3.1.5
  • v3.1.6
  • v3.1.7
  • v3.1.8

11 Jul 2026 11:04PM UTC coverage: 100.0% (+0.01%) from 99.988%
#5615

push

github

ben-manes
Copy read-through stores under store-by-value

Under store-by-value, LoadingCacheProxy.get/getAll stored the caller's
key and JCacheLoaderAdapter.load/loadAll/reload stored the loader's
value without copying, unlike every other store site. A mutable key
mutated after a read-through get corrupted the stored key, and a loader
that retained its returned value could later mutate the stored entry.
The RI copies both key and value, and Caffeine's own invoke path copies
the loaded value, so read-through was the outlier.

Copy the key at the proxy boundary and the value in the adapter before
wrapping it in Expirable. Create the copier once in the cache factory
and pass it into CacheProxy and the adapter instead of building it
twice.

4125 of 4134 branches covered (99.78%)

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

8401 of 8401 relevant lines covered (100.0%)

1.0 hits per line

Relevant lines Covered
Build:
Build:
8401 RELEVANT LINES 8401 COVERED LINES
1.0 HITS PER LINE
Source Files on v3.dev
  • Tree
  • List 78
  • Changed 6
  • Source Changed 5
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
#5615 v3.dev Copy read-through stores under store-by-value Under store-by-value, LoadingCacheProxy.get/getAll stored the caller's key and JCacheLoaderAdapter.load/loadAll/reload stored the loader's value without copying, unlike every other store site. A mutab... push 12 Jul 2026 12:24AM UTC ben-manes github
100.0
#5614 v3.dev Probe quietly in the async VarExpiration putIfAbsent BoundedVarExpiration.putIfAbsentAsync probed for a present entry with a non-quiet cache.getIfPresent, which runs the read path through the cache's configured AsyncExpiry and so applies the user... push 11 Jul 2026 09:59PM UTC ben-manes github
99.99
#5613 v3.dev Preserve timestamps on a raced same-instance refresh The automatic refreshIfNeeded path checked for an equal-value reload before the ABA/ownership check and returned without preserving the timestamps, so a reload completing after a concurrent put... push 11 Jul 2026 04:26PM UTC ben-manes github
100.0
#5612 v3.dev Preserve timestamps on a raced same-instance refresh The automatic refreshIfNeeded path checked for an equal-value reload before the ABA/ownership check and returned without preserving the timestamps, so a reload completing after a concurrent put... push 11 Jul 2026 04:04PM UTC ben-manes github
71.29
#5610 v3.dev Reject null async bulk mappings and snapshot the result AsyncBulkCompleter read the caller's result map lazily while completing each proxy (a get in fillProxies, iteration in addNewEntries), so a map whose get or traversal threw partway stranded ... push 11 Jul 2026 03:52AM UTC ben-manes github
100.0
#5609 v3.dev Reject null async bulk mappings and snapshot the result AsyncBulkCompleter read the caller's result map lazily while completing each proxy (a get in fillProxies, iteration in addNewEntries), so a map whose get or traversal threw partway stranded ... push 11 Jul 2026 03:26AM UTC ben-manes github
100.0
#5608 v3.dev stroke every policy line in the simulate chart (#1989) push 08 Jul 2026 04:55PM UTC web-flow github
100.0
#5605 v3.dev Fix review findings: examples, guava, simulator - write-behind-rxjava: run the coalescer inside the subscribe try/catch and add an onError backstop so a throwing coalescer drops its batch instead of silently tearing down the stream - coalesci... push 07 Jul 2026 06:29PM UTC ben-manes github
100.0
#5603 v3.dev Fill branch-coverage gaps from the audit changes The recent audit fixes left a few uncovered branches (StripedBuffer's spin lock aside): - Remove the dead recordMiss parameter from handleCompletion. The last caller passing true became false wh... push 07 Jul 2026 09:25AM UTC ben-manes github
100.0
#5600 v3.dev Fill branch-coverage gaps from the audit changes The recent audit fixes left a few uncovered branches (StripedBuffer's spin lock aside): - Remove the dead recordMiss parameter from handleCompletion. The last caller passing true became false wh... push 07 Jul 2026 08:09AM UTC ben-manes github
100.0
See All Builds (4639)
  • Repo on GitHub
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