diff --git a/src/main/java/org/springframework/data/aerospike/cache/AerospikeCache.java b/src/main/java/org/springframework/data/aerospike/cache/AerospikeCache.java index cdd369b43..99d7561aa 100644 --- a/src/main/java/org/springframework/data/aerospike/cache/AerospikeCache.java +++ b/src/main/java/org/springframework/data/aerospike/cache/AerospikeCache.java @@ -115,15 +115,17 @@ public Object getNativeCache() { @SuppressWarnings({"NullableProblems"}) public T get(Object key, Callable valueLoader) { Key dbKey = getKey(key); - Record record; - synchronized (this) { - record = client.get(null, dbKey); - if (record == null) { - T value = callValueLoader(valueLoader, key); - if (Objects.nonNull(value)) { - put(key, value); + Record record = client.get(null, dbKey); + if (record == null && valueLoader != null) { + synchronized (this) { + record = client.get(null, dbKey); + if (record == null) { + T value = callValueLoader(valueLoader, key); + if (Objects.nonNull(value)) { + put(key, value); + } + return value; } - return value; } } if (record.getValue(VALUE) != null) {