grails-data-mapping
grails-data-mapping copied to clipboard
Update dependency com.github.ben-manes.caffeine:caffeine to v3
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| com.github.ben-manes.caffeine:caffeine | 2.9.3 -> 3.1.1 |
Release Notes
ben-manes/caffeine
v3.1.1
- Fixed
refreshAfterWritewhen racing with a removed entry (#715) - Fixed gradle module metadata variant selection (#716)
v3.1.0
- Fixed the publication of a removal notification when computing a null value on top of an expired entry
- Fixed the publication of a removal notification for a conditional replacement on an unbounded cache
- Fixed
Map.equalswhen the traversal triggers an eviction and the subset of live entries matches - Improved refreshAfterWrite to return the new value if computed by the caller (#688, #699)
- Added Interner for weak keyed equality caching (#344)
v3.0.6
- Fixed
AsyncCache.getAllwhen storing additional mappings (#655) - Added the ability to specify the expiration time with the computation
- Added a warning if writes stall due to blocked eviction (#672)
- Added advanced query support for obtaining entry metadata
v3.0.5
Cache
- Fixed reference eviction when used with a broken executor (JDK-8274349)
- Suppressed log warnings if a future is cancelled or times out (#597)
- Removed
@NullablefromLoadingCache.get(key)(#594) - Fixed early expiration of in-flight async loads (#625)
JCache
close()will now shutdown the executor and wait for in-flight loads to finish
v3.0.4
Cache
- Fixed cases that incorrectly notified the removal listener for no-op replacements (#593)
- Improved how refreshAfterWrite is triggered on a read to avoid hotspots
- Added the ability to capture coldest & hottest weighted snapshots
- Reduced the per-entry overhead when using weak/soft values
- Fixed
Map.entrySet.contains(o)to use reference equality
v3.0.3
Cache
- Fixed reading an intermittent null weak/soft value during a concurrent write (#568)
- Fixed extraneous eviction when concurrently removing a collected entry after a writer resurrects it with a new mapping (#568)
- Fixed excessive retries of discarding an expired entry when the fixed duration period is extended, thereby resurrecting it (#568)
v3.0.2
Cache
- Added cancellation of the next scheduled expiration cleanup when the cache becomes empty (#542)
- Improved how variable expiration reorganizes the timer events (#541)
- Improved usage of nullness annotations (#530)
- Removed
sun.misc.Unsafeand fallbacks - Added module descriptors (#535)
v3.0.1
- Fixed thread local fallback initialization for striped buffer (#515)
- Improved eviction reordering for weighted caches (#513)
- Added putIfAbsent optimistic fastpath (#506)
v3.0.0
This release includes API incompatible changes.
Highlights
- Java 11 or above is required
- Java 8 users can continue to use version 2.x, which will be supported
API improvements
- Added
Policy.refreshes()for a snapshot of the in-flight refresh operations CacheLoaderandAsyncCacheLoaderofferbulkfactory methodsAsyncCacheLoadermethods may now throw checked exceptions- Better usage of Checker Framework nullness annotations (#337)
LoadingCache.refreshnow returns the in-flight future (#143)- Various unimplemented default methods are now abstract
- Added
LoadingCache.refreshAllconvenience method - Bulk loads now receive a
Setof keys (wasIterable) - More flexible generic bounds and type parameters
Implementation improvements
- Refresh operations ignore redundant calls during an in-flight load and are linearizable (#193, #236, #282, #322, #373, #467)
- The Java Platform Logging API is used instead of
java.util.logging(#456) sun.misc.Unsafeis no longer required (#273)
Incompatible changes
VarExpirationtime-based puts now return the old value instead of a boolean result- Removed jandex resource as no longer utilized by Quarkus
- Split
Policy.Expirationinto fixed and refresh interfaces
Deprecation removals
CacheWriter,SingleConsumerQueue, andUnsafeAccessStatsCounter.recordEvictionvariationsCacheStatsconstructors
Notes
CacheWriterusages can be replaced byMapcomputations andCaffeine.evictionListener- For best performance
Unsafemay be used if available, otherwise falls back toVarHandles - We will continue to support and maintain version 2.x for Java 8 users
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
- [ ] If you want to rebase/retry this PR, click this checkbox.
This PR has been generated by Mend Renovate. View repository job log here.
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.