22 days ago
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)
2023-02-20 08:41:10
Add @CanIgnoreReturnValue annotations for static analysis (#868)
2023-02-10 15:07:15
Cache
- Fixed the build time dependency constraints from being leaked into the external metadata (#867)
- Fixed the behavior for null lookups to into returned unmodifiable maps to be consistent (#864)
- Fixed the cause of a removal notification for a discarded refresh when the entry was removed
- 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
putAll
with an immutable map that causes an exception when using a cache writer (#841)
2022-11-24 03:52:53
Cache
- Added detection when a key's equality changes and causes the underlying map to become corrupted (SOLR-16489)
- Improved the frequency sketch by reducing memory accessing by better utilizing the cpu cache line
- Fixed
computeIfAbsent
when 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
2022-05-27 00:50:56
- Fixed
refreshAfterWrite
when racing with a removed entry (#715) - Fixed gradle module metadata variant selection (#716)
2022-04-28 07:02:44
- 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.equals
when 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)
2022-03-15 15:12:41
- Fixed
AsyncCache.getAll
when 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
2021-12-03 07:29:43
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
@Nullable
fromLoadingCache.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
2021-12-02 17:04:44
Cache
- Fixed reference eviction when used with a broken executor (JDK-8274349)
- Reduced the entry overhead by 8 bytes when using weak or soft values
- Suppressed log warnings if a future is cancelled or times out (#597)
- Fixed Map.entrySet.contains(o) to use reference equality
- Fixed early expiration of in-flight async loads (#625)
JCache
-
close()
will now shutdown the executor and wait for in-flight loads to finish
2021-09-13 11:46:23
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