java-sdk-contrib
java-sdk-contrib copied to clipboard
fix(deps): 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.2.0 |
Release Notes
ben-manes/caffeine (com.github.ben-manes.caffeine:caffeine)
v3.2.0: 3.2.0
Cache
- Added Sigstore signing of maven artifacts
- Added
Expirystatic factory methods (#1499) - Migrated to JSpecify annotations (was checker framework)
- Fixed variable expiration calculation when nearing overflow
- Added logging when an async cache's removal listener fails
- Added an expiration write optimization to more operations (#1320)
- Fixed when a
WeigherorExpiryfail on an async completion (#1687) - Fixed cases when the expiration ticker was also used for statistics (#1678)
- Fixed refresh handling to skip if the async cache's entry is still loading (#1478)
- Fixed
containsKeyfor an async cache's synchronous view while in-flight (#1626) - Fixed premature expiration for an async cache when using nearly immediate expiration (#1623)
- For a bulk async load returning extra mappings, wait to be added to the cache before returning (#1409)
Guava
- Relaxed the OSGi version requirement (#1160)
JCache
- Allow
hibernate.javax.cache.urito load the configuration from a jar (#1347)
v3.1.8: 3.1.8
- Added a workaround for a possible JDK concurrency bug with method handles (#1111)
v3.1.7: 3.1.7
Cache
- Improved builder construction time (#905)
JCache
- Fixed deadlock when a cache listener writes to another cache (#1065)
- Added
jakarta.injectsupport, droppingjavax.inject(#1009)
v3.1.6: 3.1.6
- Fixed the log message when a key's equality has changed and corrupted the underlying map (#900, SLF4J-529)
- Added
Implementation-Versionand otherMANIFEST.MFattributes (#889)
v3.1.5: 3.1.5
Cache
- Fixed
clear()removing a key more than once due to a write-back removal listener (#872)
JCache
- Added support for loading the configuration from the cache manager's uri (#877)
v3.1.4: 3.1.4
Added @CanIgnoreReturnValue annotations for static analysis (#868)
v3.1.3: 3.1.3
Cache
- Fixed the build time dependency constraints from being leaked into the external metadata (#867)
- Fixed the cause of a removal notification for a discarded refresh when the entry was removed
- Fixed the behavior for null lookups into returned unmodifiable maps to be consistent (#864)
- Fixed an unexpected delay of removal notifications when using a scheduler (#859)
- Fixed explicit refreshes from being deduped if the entry is pending eviction
- Defaulted methods to @CheckReturnValue for static analysis (#863)
- Reduced the lock hold time during Map.clear (#835)
JCache
- Fixed
putAllwith an immutable map that causes an exception when using a cache writer (#841)
v3.1.2: 3.1.2
Cache
- Added detection for when a key's equality has changed and corrupted the underlying map (SOLR-16489)
- Improved the frequency sketch by better utilizing the cpu cache line to reduce memory accesses
- Fixed
computeIfAbsentwhen replacing a collected weak/soft value and the custom expiry fails - Improved refresh conflict detection to avoid unnecessarily discarding after a reload
- Improved eviction when the weight is oversized (#745)
Guava
- Added an adapter from Guava's CacheLoader to Caffeine's (#766)
JCache
- Fixed
Cache.getConfiguration()to return an immutable instance
v3.1.1: 3.1.1
- Fixed
refreshAfterWritewhen racing with a removed entry (#715) - Fixed gradle module metadata variant selection (#716)
v3.1.0: 3.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: 3.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: 3.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: 3.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: 3.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: 3.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: 3.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: 3.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 is behind base branch, 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, check this box
This PR was generated by Mend Renovate. View the repository job log.