diff --git a/redisson/src/main/java/org/redisson/RedissonLock.java b/redisson/src/main/java/org/redisson/RedissonLock.java index 19ff67bc64d931a99b36b41f2b064feac33d6c50..adf3b7006fab2277f8bc2dc227bdbe0694ad1951 100644 --- a/redisson/src/main/java/org/redisson/RedissonLock.java +++ b/redisson/src/main/java/org/redisson/RedissonLock.java @@ -325,9 +325,12 @@ public class RedissonLock extends RedissonExpirable implements RLock { if (threadId != null) { task.removeThreadId(threadId); } - + if (threadId == null || task.hasNoThreads()) { - task.getTimeout().cancel(); + Timeout timeout = task.getTimeout(); + if (timeout != null) { + timeout.cancel(); + } EXPIRATION_RENEWAL_MAP.remove(getEntryName()); } }