ben-manes/caffeine
 Watch   
 Star   
 Fork   
2025-01-18 03:09:54
caffeine

3.2.0

Cache

  • Added Sigstore signing of maven artifacts
  • Added Expiry static 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 Weigher or Expiry fail on an async completion (#1687)
  • Fixed cases when the expiration ticker was also used for statistics (#1678)
  • Fixed to refresh handling to skip if the async cache's entry is still loading (#1478)
  • Fixed containsKey for 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.uri to load the configuration from a jar (#1347)
2023-08-09 12:46:32
caffeine

3.1.8

  • Added a workaround for a possible JDK concurrency bug with method handles (#1111)
2023-07-24 08:35:50
caffeine

3.1.7

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)
2023-04-08 00:05:43
caffeine

3.1.6

  • 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)
2023-03-06 07:20:18
caffeine

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)
2023-02-20 08:41:10
caffeine

v3.1.4

Add @CanIgnoreReturnValue annotations for static analysis (#868)

2023-02-10 15:07:15
caffeine

v3.1.3

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
caffeine

v3.1.2

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
caffeine

3.1.1

  • Fixed refreshAfterWrite when racing with a removed entry (#715)
  • Fixed gradle module metadata variant selection (#716)
2022-04-28 07:02:44
caffeine

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