]
William Burns commented on ISPN-5664:
-------------------------------------
Okay looking closer, I think I see the issue. If you pass a -1 for lifespan or maxIdle,
it will use the default value defined for that cache. Thus if you have a low default
value this value will be removed from the cache.
It seems that the server is treating -1 the same as 0. So we need to differentiate
those.
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.