[
https://issues.jboss.org/browse/ISPN-5801?page=com.atlassian.jira.plugin....
]
Dan Siviter edited comment on ISPN-5801 at 10/1/15 7:02 AM:
------------------------------------------------------------
So looking at the code comments in {{JCacheInternalMetadata}} it states {{#expiry}} is:
bq. // absolute time when entry should expire
However, if {{CreatedExpiryPolicy}} is set to {{Duration#FIVE_MINUTES}} this value will be
300,000ms. This causes {{JCacheInternalMetadata#isExpired}} to return {{true}}.
Personally, I'd say that {{#expiry}} should be the offset and not absolute time.
Therefore, the issue could be fixed using:
{code}
@Override
public boolean isExpired(long now) {
return expiry > -1 && (created + expiry) <= now;
}
{code}
...but I'm not sure of the impact of this.
was (Author: dan_siviter):
So looking at the code comments in {{JCacheInternalMetadata}} it states {{#expiry}} is:
bq. // absolute time when entry should expire
However, if {{CreatedExpiryPolicy}} is set to {{Duration#FIVE_MINUTES}} this value will be
300,000ms. This causes {{JCacheInternalMetadata#isExpired}} to return the incorrect value.
Personally, I'd say that {{#expiry}} should be the offset and not absolute time.
Therefore, the issue could be fixed using:
{code}
@Override
public boolean isExpired(long now) {
return expiry > -1 && (created + expiry) <= now;
}
{code}
...but I'm not sure of the impact of this.
Cache with CacheLoader and CreatedExpiryPolicy Invalidates Instantly
--------------------------------------------------------------------
Key: ISPN-5801
URL:
https://issues.jboss.org/browse/ISPN-5801
Project: Infinispan
Issue Type: Bug
Components: JCache
Affects Versions: 8.0.1.Final
Reporter: Dan Siviter
When using a {{javax.cache.expiry.CreatedExpiryPolicy}} and a
{{javax.cache.integration.CacheLoader}} the value generated for the
{{org.infinispan.jcache.embedded/JCacheInternalMetadata#expiry}} is not relative to
{{TimeService#wallClockTime}}. It therefore invalidates the entry instantly.
I believe the problem is in
{{org.infinispan.jcache.embedded.JCacheLoaderAdapter\[line=48\]}} where
{{org.infinispan.jcache.Expiration#getExpiry(...)}} doesn't calculate the relative
value so {{org.infinispan.jcache.embedded.JCacheInternalMetadata#isExpired}} always
returns {{true}}.
Unfortunately, work doesn't allow me to upload code so I can't submit an example.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)