[infinispan-issues] [JBoss JIRA] (ISPN-5664) Null is returned for a not expired entry in Hot Rod client
William Burns (JIRA)
issues at jboss.org
Mon Aug 10 16:45:03 EDT 2015
[ https://issues.jboss.org/browse/ISPN-5664?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13097049#comment-13097049 ]
William Burns commented on ISPN-5664:
-------------------------------------
The previous issue is a problem, however I found the real issue:
https://github.com/infinispan/infinispan/blob/master/core/src/main/java/org/infinispan/container/InternalEntryFactoryImpl.java#L303
That line should be passing timeService.wallClockTime() instead. The same with line 307. Otherwise they pass the expiration timeout value which will always be lower than unless they specify a huge timeout.
> Null is returned for a not expired entry in Hot Rod client
> ----------------------------------------------------------
>
> Key: ISPN-5664
> URL: https://issues.jboss.org/browse/ISPN-5664
> Project: Infinispan
> Issue Type: Bug
> Components: Remote Protocols
> Affects Versions: 8.0.0.Beta2
> Reporter: William Burns
> Assignee: William Burns
>
> For a mortal entry (lifespan > -1), overwriting it with lifespan=-1 (make it immortal) unexpectedly removes the entry like follows.
> ~~~
> cache.put(key, "value1", 100, TimeUnit.SECONDS, 100, TimeUnit.SECONDS);
> cache.get(key); // returns "value1"
> cache.put(key, "value2", -1, TimeUnit.SECONDS, 100, TimeUnit.SECONDS);
> cache.get(key); // returns null, expected "value2"
> cache.put(key, "value3", -1, TimeUnit.SECONDS, 100, TimeUnit.SECONDS);
> cache.get(key); // returns "value3"
> ~~~
> In library mode, the 2nd get returns non-null as expected. The same behaviour is observed for a transient (maxIdle > -1) entry also.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)
More information about the infinispan-issues
mailing list