From c6fdfedb5be0784619098dd5991487cff6606d54 Mon Sep 17 00:00:00 2001 From: seakider Date: Mon, 3 Jun 2024 23:14:27 +0800 Subject: [PATCH] Fixed - Concurrency problem, oldEntry.addThreadId may happen before entry.addThreadId Signed-off-by: seakider --- redisson/src/main/java/org/redisson/RedissonBaseLock.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/redisson/src/main/java/org/redisson/RedissonBaseLock.java b/redisson/src/main/java/org/redisson/RedissonBaseLock.java index fa68ea5a5..92a10a5a4 100644 --- a/redisson/src/main/java/org/redisson/RedissonBaseLock.java +++ b/redisson/src/main/java/org/redisson/RedissonBaseLock.java @@ -165,11 +165,11 @@ public abstract class RedissonBaseLock extends RedissonExpirable implements RLoc protected void scheduleExpirationRenewal(long threadId) { ExpirationEntry entry = new ExpirationEntry(); + entry.addThreadId(threadId); ExpirationEntry oldEntry = EXPIRATION_RENEWAL_MAP.putIfAbsent(getEntryName(), entry); if (oldEntry != null) { oldEntry.addThreadId(threadId); } else { - entry.addThreadId(threadId); try { renewExpiration(); } finally {