]
Galder Zamarreño updated ISPN-1198:
-----------------------------------
Status: Pull Request Sent (was: Coding In Progress)
Git Pull Request:
Cache entrySet,keySet and values operations ignoring expired entries
--------------------------------------------------------------------
Key: ISPN-1198
URL:
https://issues.jboss.org/browse/ISPN-1198
Project: Infinispan
Issue Type: Feature Request
Components: Core API
Affects Versions: 4.2.1.FINAL, 5.0.0.CR5
Reporter: Martin Gencur
Assignee: Galder Zamarreño
Fix For: 5.0.0.CR7, 5.0.0.FINAL
Cache's entrySet/keySet/values implementations do not take into account that entries
might have expired, so the collections returned might contain key/value pairs that should
be removed.
This has the side effect of getBulk remote cache operation returning entries even after
their lifespan ends. From Martin:
{quote}This is related to a getBulk operation on an Infinispan HotRod client.
Simple test snippet that fails ATM:
{code}Map<String,String> mapIn = new HashMap<String,String>() ;
Map<String,String> mapOut = new HashMap<String,String>() ;
mapOut.put("aKey", "aValue");
mapOut.put("bKey", "bValue");
remoteCache.putAll(mapOut, lifespanInSecs, TimeUnit.SECONDS);
sleepForSecs(lifespanInSecs) ;
mapIn = remoteCache.getBulk();
assertTrue(mapIn.size() == 0); //fails, entries are still there{code}
However, when I call remoteCache.get(<key>); for all the keys and then getBulk, the
getBulk return empty map.
So it seems the get operations cause the entries to be removed from the cache. Please
implement this also for getBulk operation or reject it with an explanation.{quote}
--
This message is automatically generated by JIRA.
For more information on JIRA, see: