Details
-
Bug
-
Resolution: Duplicate
-
Major
-
None
-
5.3.0.CR1
-
None
-
None
Description
When an entry is stored via HotRod and later replaced by Memcached (or Embedded, it does not matter), the version of the entry does not change. This makes operations like replaceWithVersion of HotRod client unreliable in compatibility mode.
public void testHotRodPutMemcachedReplaceHotRodGetVersionedTest() throws Exception { final String key1 = "6"; // 1. Put with Hot Rod RemoteCache<String, Object> remote = cacheFactory.getHotRodCache(); assertEquals(null, remote.withFlags(Flag.FORCE_RETURN_VALUE).put(key1, "v1")); VersionedValue oldValue = remote.getVersioned(key1); // 2. Replace with Memcached Future<Boolean> f = cacheFactory.getMemcachedClient().set(key1, 0, "v2"); assertTrue(f.get(60, TimeUnit.SECONDS)); // 3. Get with HotRod assertEquals("v2", remote.getVersioned(key1).getValue()); assertTrue("The entry version should have changed", oldValue.getVersion() != remote.getVersioned(key1).getVersion()); //^^^ fails here }
Attachments
Issue Links
- duplicates
-
ISPN-3163 Replacing entry via HotRod which was initially stored via Memcached does not change CAS
- Closed