From 428f3cebbbba5b493a193be2a312ff6fb3c317bf Mon Sep 17 00:00:00 2001 From: Nikita Koksharov Date: Fri, 15 Apr 2022 12:37:23 +0300 Subject: [PATCH] Fixed - RedissonSpinLock.tryLock() method returns false instead of true if the remaining wait time is negative #4197 --- redisson/src/main/java/org/redisson/RedissonSpinLock.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/redisson/src/main/java/org/redisson/RedissonSpinLock.java b/redisson/src/main/java/org/redisson/RedissonSpinLock.java index 60ce4b2f9..e0f697a60 100644 --- a/redisson/src/main/java/org/redisson/RedissonSpinLock.java +++ b/redisson/src/main/java/org/redisson/RedissonSpinLock.java @@ -156,17 +156,19 @@ public class RedissonSpinLock extends RedissonBaseLock { } LockOptions.BackOffPolicy backOffPolicy = backOff.create(); - while (ttl != null) { + while (true) { current = System.currentTimeMillis(); Thread.sleep(backOffPolicy.getNextSleepPeriod()); ttl = tryAcquire(leaseTime, unit, threadId); + if (ttl == null) { + return true; + } time -= System.currentTimeMillis() - current; if (time <= 0) { acquireFailed(waitTime, unit, threadId); return false; } } - return true; } @Override