Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Apr 28, 2022

This PR contains the following updates:

Package Change Age Confidence
com.github.ben-manes.caffeine:caffeine 2.8.13.2.3 age confidence

Release Notes

ben-manes/caffeine (com.github.ben-manes.caffeine:caffeine)

v3.2.3: 3.2.3

  • Fixed frequency tracking of weak keys to use the object's identity hash code (#​1902)
  • Added support for underscores in CaffeineSpec when using numeric literals (#​1890)
  • Improved the external api to no longer lock when querying for the maximum size or weighted size (#​1897)
  • Added detection and recovery when a custom CompletableFuture is in an inconsistent state (quarkus#50513)

v3.2.2: 3.2.2

  • Fixed characteristics returned by Spliterators (#​1883)

v3.2.1: 3.2.1

  • Fixed computeIfAbsent for an async cache's synchronous view to retry if incomplete
  • Improved CaffeineSpec when being reflectively constructed (#​1839)
  • Improved the handling of negative durations with variable expiration
  • Fixed intermittent null after replacing a weak/soft value (#​1820)

v3.2.0: 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 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)

v3.1.8: 3.1.8

Compare Source

  • Added a workaround for a possible JDK concurrency bug with method handles (#​1111)

v3.1.7: 3.1.7

Compare Source

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)

v3.1.6: 3.1.6

Compare Source

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

v3.1.5: 3.1.5

Compare Source

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

Compare Source

Added @​CanIgnoreReturnValue annotations for static analysis (#​868)

v3.1.3: 3.1.3

Compare Source

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)

v3.1.2: 3.1.2

Compare Source

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

v3.1.1: 3.1.1

Compare Source

  • Fixed refreshAfterWrite when racing with a removed entry (#​715)
  • Fixed gradle module metadata variant selection (#​716)

v3.1.0: 3.1.0

Compare Source

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

v3.0.6: 3.0.6

Compare Source

  • 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

v3.0.5: 3.0.5

Compare Source

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 from LoadingCache.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

Compare Source

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

Compare Source

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

Compare Source

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.Unsafe and fallbacks
  • Added module descriptors (#​535)

v3.0.1: 3.0.1

Compare Source

  • 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

Compare Source

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
  • CacheLoader and AsyncCacheLoader offer bulk factory methods
  • AsyncCacheLoader methods may now throw checked exceptions
  • Better usage of Checker Framework nullness annotations (#​337)
  • LoadingCache.refresh now returns the in-flight future (#​143)
  • Various unimplemented default methods are now abstract
  • Added LoadingCache.refreshAll convenience method
  • Bulk loads now receive a Set of keys (was Iterable)
  • More flexible generic bounds and type parameters
Implementation improvements
Incompatible changes
  • VarExpiration time-based puts now return the old value instead of a boolean result
  • Removed jandex resource as no longer utilized by Quarkus
  • Split Policy.Expiration into fixed and refresh interfaces
Deprecation removals
  • CacheWriter, SingleConsumerQueue, and UnsafeAccess
  • StatsCounter.recordEviction variations
  • CacheStats constructors
Notes
  • CacheWriter usages can be replaced by Map computations and Caffeine.evictionListener
  • For best performance Unsafe may be used if available, otherwise falls back to VarHandles
  • We will continue to support and maintain version 2.x for Java 8 users

v2.9.3: 2.9.3

Compare Source

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

v2.9.2: 2.9.2

Compare Source

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)

v2.9.1: 2.9.1

Compare Source

Cache

  • Added cancellation of the next scheduled expiration cleanup when the cache becomes empty (#​542)
  • Improved how variable expiration reorganizes the timer events (#​541)
  • Added putIfAbsent optimistic fastpath (#​506)

v2.9.0: 2.9.0

Compare Source

Cache

  • Added Caffeine.evictionListener which is notified within the atomic operation when an entry is automatically removed
  • Added triggering cache maintenance if an iterator observes an expired entry for more aggressive eviction (#​487)
  • Improved eager eviction of an added or updated entry if it exceeds the cache's maximum weight
  • Deprecated CacheWriter. Please use asMap computations or an eviction listener instead
  • Added CacheStats.of(...) to allow for becoming a value-based class in a future release

v2.8.8: 2.8.8

Compare Source

Cache

v2.8.7: 2.8.7

Compare Source

Cache

  • Fixed asMap().keySet().toArray() to not return expired mappings (#​472)
  • Added support for ISO-8601 durations to CaffeineSpec (#​466)
  • Fixed put update optimization for variable expiration (#​478)

v2.8.6: 2.8.6

Compare Source

Cache

  • Changed false sharing protection to comply with JDK 15's field layout (Java Objects Inside Out)
  • Suppressed the removal listener notification when an AsyncCache future value resolves to null
  • Improved the implementations of AsyncCache.synchronous().asMap() conditional methods
  • Added Jandex index for assisting GraalVM AOT (quarkusio/quarkus#10420)
  • Deprecated UnsafeAccess and SingleConsumerQueue

JCache

  • Changed to an OSGi Component to avoid coupling consumers to the provider (#​447)
  • Added the ability to record native statistics (#​460)

v2.8.5: 2.8.5

Compare Source

Cache

  • Fixed expiration delay for scheduled cleanup (#​431)

v2.8.4: 2.8.4

Compare Source

Cache

  • Schedule maintenance on an absent getIfPresent if there is pending work (#​420)

v2.8.3: 2.8.3

Compare Source

Cache

  • Added Policy.getIfPresentQuietly to lookup without affecting the metadata (#​418)

v2.8.2: 2.8.2

Compare Source

Cache

  • Added optimistic fast path for putIfAbsent to avoid locking (apache/openwhisk#2797)
  • Fixed race causing an incorrect removal cause (#​412)
  • Fixed SCM connection URLs (#​394)

JCache

  • Prefer the thread context classloader (#​387)

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.

@renovate renovate bot requested a review from a team as a code owner April 28, 2022 12:43
@renovate renovate bot requested a review from echerniak April 28, 2022 12:43
@codecov
Copy link

codecov bot commented Apr 28, 2022

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 79.54%. Comparing base (6991cf7) to head (45c0dd2).

❗ Current head 45c0dd2 differs from pull request most recent head 991b688. Consider uploading reports for the commit 991b688 to get more accurate results

Additional details and impacted files
@@             Coverage Diff              @@
##             master       #6      +/-   ##
============================================
+ Coverage     76.25%   79.54%   +3.29%     
- Complexity      338      348      +10     
============================================
  Files            89       89              
  Lines          1731     1731              
  Branches        182      182              
============================================
+ Hits           1320     1377      +57     
+ Misses          257      190      -67     
- Partials        154      164      +10     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@renovate renovate bot force-pushed the renovate/com.github.ben-manes.caffeine-caffeine-3.x branch from 5bcf718 to 852b43f Compare May 26, 2022 19:38
@renovate renovate bot force-pushed the renovate/com.github.ben-manes.caffeine-caffeine-3.x branch from 852b43f to ced508f Compare September 25, 2022 12:19
@renovate renovate bot force-pushed the renovate/com.github.ben-manes.caffeine-caffeine-3.x branch from ced508f to e86e758 Compare November 20, 2022 16:56
@renovate renovate bot force-pushed the renovate/com.github.ben-manes.caffeine-caffeine-3.x branch from e86e758 to 13a33a5 Compare March 12, 2023 17:56
@renovate renovate bot force-pushed the renovate/com.github.ben-manes.caffeine-caffeine-3.x branch from 13a33a5 to ec54d25 Compare May 29, 2023 23:44
@renovate renovate bot force-pushed the renovate/com.github.ben-manes.caffeine-caffeine-3.x branch from ec54d25 to 2768b83 Compare July 24, 2023 05:19
@renovate renovate bot force-pushed the renovate/com.github.ben-manes.caffeine-caffeine-3.x branch from 2768b83 to 45c0dd2 Compare August 10, 2023 05:35
@renovate renovate bot force-pushed the renovate/com.github.ben-manes.caffeine-caffeine-3.x branch from 45c0dd2 to 991b688 Compare May 2, 2024 17:55
@renovate renovate bot force-pushed the renovate/com.github.ben-manes.caffeine-caffeine-3.x branch from 991b688 to 9245cec Compare January 20, 2025 07:30
@renovate renovate bot force-pushed the renovate/com.github.ben-manes.caffeine-caffeine-3.x branch from 9245cec to c279f2c Compare June 14, 2025 12:12
@renovate renovate bot force-pushed the renovate/com.github.ben-manes.caffeine-caffeine-3.x branch from c279f2c to 9aba6b6 Compare July 13, 2025 12:03
@renovate renovate bot force-pushed the renovate/com.github.ben-manes.caffeine-caffeine-3.x branch from 9aba6b6 to a3eeaa5 Compare November 1, 2025 15:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant