Skip to content

Releases: ben-manes/caffeine

3.1.8

09 Aug 06:03
Compare
Choose a tag to compare
  • Added a workaround for a possible JDK concurrency bug with method handles (#1111)

3.1.7

24 Jul 01:13
Compare
Choose a tag to compare

Cache

  • Improved builder construction time (#905)

JCache

  • Fixed deadlock when a cache listener writes to another cache (#1065)
  • Added jakarta.inject support, dropping javax.inject (#1009)

3.1.6

07 Apr 16:31
Compare
Choose a tag to compare
  • Fixed the log message when a key's equality has changed and corrupted the underlying map (#900, SLF4J-529)
  • Added Implementation-Version and other MANIFEST.MF attributes (#889)

3.1.5

06 Mar 03:37
Compare
Choose a tag to compare

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)

3.1.4

20 Feb 01:43
Compare
Choose a tag to compare

Added @CanIgnoreReturnValue annotations for static analysis (#868)

3.1.3

10 Feb 07:18
Compare
Choose a tag to compare

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 putAll with an immutable map that causes an exception when using a cache writer (#841)

3.1.2

23 Nov 20:51
Compare
Choose a tag to compare

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 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

3.1.1

26 May 18:42
Compare
Choose a tag to compare
  • Fixed refreshAfterWrite when racing with a removed entry (#715)
  • Fixed gradle module metadata variant selection (#716)

3.1.0

28 Apr 03:09
Compare
Choose a tag to compare
  • 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)

3.0.6

19 Mar 05:52
Compare
Choose a tag to compare
  • 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