-
Bug
-
Resolution: Done
-
Major
-
5.0.0.CR7
-
None
I have a test (below) which creates a CacheManager and Cache, sets a value, waits a bit, creates another CacheManager and Cache, then tries to get the value from the first cache. Only it gets null instead – from both caches!
Am new to Infinispan but discussed with Sanne who recommended to file as a bug.
Originally discussed in community forum here.
public void bug() throws InterruptedException { EmbeddedCacheManager cm1 = newCM(); Cache c1 = cm1.getCache("x"); c1.put("key", "value"); Thread.sleep(3000); EmbeddedCacheManager cm2 = newCM(); System.out.println(c1.get("key")); //always says "value" Cache c2 = cm2.getCache("x"); System.out.println(c1.get("key")); //says null sometimes assert c1.get("key") != null : "value at cache 1 was lost"; cm1.stop(); cm2.stop(); } public EmbeddedCacheManager newCM() { GlobalConfiguration gc = GlobalConfiguration.getClusteredDefault(); Configuration cfg = new Configuration().fluent() .mode(Configuration.CacheMode.DIST_SYNC) .hash().numOwners(1) .clustering().l1().disable() .build(); return new DefaultCacheManager(gc, cfg); }
(BTW changing to REPL_SYNC, or numOwners(2), it works fine.)