[
https://issues.apache.org/jira/browse/CXF-9259?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Freeman Yue Fang updated CXF-9259:
----------------------------------
Attachment: CXF-9259-reproducer.tar
> JCacheReplayCache does not respect entry expiry or shared CacheManager
> ownership
> --------------------------------------------------------------------------------
>
> Key: CXF-9259
> URL: https://issues.apache.org/jira/browse/CXF-9259
> Project: CXF
> Issue Type: Bug
> Affects Versions: 4.1.9, 4.2.4
> Reporter: Freeman Yue Fang
> Assignee: Freeman Yue Fang
> Priority: Major
> Attachments: CXF-9259-reproducer.tar
>
>
> {{JCacheReplayCache}} has two lifecycle issues:
> h3. 1. Closing one cache closes unrelated caches
> Each instance obtains the provider's shared default {{CacheManager}}, but
> {{close()}} destroys its named cache and then closes the entire manager.
> *Steps to reproduce:*
> # Create two {{CXFJCacheReplayCache}} instances with different names.
> # Add an entry to the second cache.
> # Close the first cache.
> # Access the second cache.
> *Actual result:* The second cache throws {{IllegalStateException}} because
> its cache is closed.
> *Expected result:* Closing one replay cache leaves other active caches usable.
> h3. 2. The supplied entry expiry is ignored
> {{add(identifier, expiry)}} and {{addIfAbsent(identifier, expiry)}} store the
> expiry in {{EHCacheValue}}, but the configured expiry policy always uses the
> default one-hour TTL.
> *Steps to reproduce:*
> # Insert an identifier with a short explicit expiry.
> # Wait until that expiry has passed.
> # Call {{contains(identifier)}}.
> # Attempt another {{addIfAbsent()}} for the same identifier.
> *Actual result:* The identifier remains present and reinsertion returns
> {{false}}.
> *Expected result:* Entries expire according to the supplied expiry, subject
> to the replay-cache contract's limits.
> h3. Proposed behavior
> The implementation should respect shared cache-manager ownership and apply
> per-entry expiration while preserving atomic replay checks.
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)