/** * {@inheritDoc} */ public NotifyingFuture<Object> getAsync(CacheKey key) { return parentCache.getAsync(key); }
private void putIfAbsentInternal(HotRodHeader header, AdvancedCache<byte[], byte[]> cache, byte[] key, byte[] value, Metadata metadata) { cache.getAsync(key).whenComplete((prev, throwable) -> handleGetForPutIfAbsent(header, cache, key, prev, value, metadata, throwable)); }
private void replaceInternal(HotRodHeader header, AdvancedCache<byte[], byte[]> cache, byte[] key, byte[] value, Metadata metadata) { // Avoid listener notification for a simple optimization // on whether a new version should be calculated or not. cache.withFlags(Flag.SKIP_LISTENER_NOTIFICATION).getAsync(key) .whenComplete((prev, throwable) -> handleGetForReplace(header, cache, key, prev, value, metadata, throwable)); }
public void testAsyncGet(Method m) throws Exception { final String key = k(m); final String value = v(m); Cache<Object, String> ownerCache = getOwner(key); ownerCache.put(key, value); AdvancedCache<Object, String> nonOwnerCache = getNonOwner(key).getAdvancedCache(); // Make the cache getAsync call go remote to verify it gets it correctly CompletableFuture<String> f = nonOwnerCache.getAsync(key); assert f != null; assert f.get().equals(value); f = nonOwnerCache.withFlags(Flag.SKIP_REMOTE_LOOKUP).getAsync(key); assert f != null; assert f.get() == null; f = nonOwnerCache.getAsync(key); assert f != null; assert f.get().equals(value); f = nonOwnerCache.withFlags(Flag.CACHE_MODE_LOCAL).getAsync(key); assert f != null; assert f.get() == null; f = nonOwnerCache.getAsync(key); assert f != null; assert f.get().equals(value); }
public void testAsyncGetCleansContextFlags(Method m) throws Exception { String key = k(m), value = "value2"; Cache<Object, String> nonOwner = getFirstNonOwner(key); Cache<Object, String> owner = getFirstOwner(key); owner.put(key, value); owner.getAdvancedCache().withFlags(Flag.SKIP_CACHE_STORE).clear(); Future<String> async = nonOwner.getAdvancedCache().withFlags(Flag.SKIP_CACHE_LOAD).getAsync(key); assertNotNull(async); assertNull(async.get()); async = nonOwner.getAdvancedCache().getAsync(key); assertNotNull(async); String returnedValue = async.get(); assertEquals(value, returnedValue); }
public void testLocalAsyncGet(Method m) throws Exception { Cache<Object, String> ownerCache = getOwner(k(m)); ownerCache.put(k(m), v(m)); CompletableFuture<String> f = getNonOwner(k(m)).getAdvancedCache().withFlags(Flag.SKIP_REMOTE_LOOKUP).getAsync(k(m)); assert f != null; assert f.get() == null; }