[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