From a00fd48c6fff78885389b170b596a47a8662fe32 Mon Sep 17 00:00:00 2001 From: Hyun Jong Park Date: Fri, 21 Nov 2025 02:14:49 +0900 Subject: [PATCH] fix: duplicated conditional TTL evaluation Signed-off-by: Hyun Jong Park --- .../data/redis/cache/DefaultRedisCacheWriter.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/springframework/data/redis/cache/DefaultRedisCacheWriter.java b/src/main/java/org/springframework/data/redis/cache/DefaultRedisCacheWriter.java index 600cb4f0b7..27d0d19348 100644 --- a/src/main/java/org/springframework/data/redis/cache/DefaultRedisCacheWriter.java +++ b/src/main/java/org/springframework/data/redis/cache/DefaultRedisCacheWriter.java @@ -270,10 +270,11 @@ public byte[] get(String name, byte[] key, Supplier valueLoader, @Nullab Assert.notNull(key, "Key must not be null"); boolean withTtl = shouldExpireWithin(ttl); + Duration ttlForGet = (timeToIdleEnabled && withTtl ? ttl : null); // double-checked locking optimization if (isLockingCacheWriter()) { - byte[] bytes = get(name, key, timeToIdleEnabled && withTtl ? ttl : null); + byte[] bytes = get(name, key, ttlForGet); if (bytes != null) { return bytes; } @@ -287,7 +288,7 @@ public byte[] get(String name, byte[] key, Supplier valueLoader, @Nullab try { - byte[] result = doGet(connection, name, key, timeToIdleEnabled && withTtl ? ttl : null); + byte[] result = doGet(connection, name, key, ttlForGet); if (result != null) { return result;