diff --git a/src/main/java/org/redisson/RedissonLock.java b/src/main/java/org/redisson/RedissonLock.java index 5b8905a1e..50256a0f4 100644 --- a/src/main/java/org/redisson/RedissonLock.java +++ b/src/main/java/org/redisson/RedissonLock.java @@ -49,8 +49,6 @@ public class RedissonLock extends RedissonExpirable implements RLock { final UUID id; - public static final Long unlockMessage = 0L; - private static final LockPubSub PUBSUB = new LockPubSub(); final CommandExecutor commandExecutor; @@ -287,7 +285,7 @@ public class RedissonLock extends RedissonExpirable implements RLock { "return 1; "+ "end; " + "return nil;", - Arrays.asList(getName(), getChannelName()), unlockMessage, internalLockLeaseTime, getLockName()); + Arrays.asList(getName(), getChannelName()), LockPubSub.unlockMessage, internalLockLeaseTime, getLockName()); if (opStatus == null) { throw new IllegalMonitorStateException("attempt to unlock read lock, not locked by current thread by node id: " + id + " thread-id: " + Thread.currentThread().getId()); @@ -317,7 +315,7 @@ public class RedissonLock extends RedissonExpirable implements RLock { + "else " + "return 0 " + "end", - Arrays.asList(getName(), getChannelName()), unlockMessage); + Arrays.asList(getName(), getChannelName()), LockPubSub.unlockMessage); } @Override diff --git a/src/main/java/org/redisson/RedissonReadLock.java b/src/main/java/org/redisson/RedissonReadLock.java index 0db7c3a2b..ec7d404d6 100644 --- a/src/main/java/org/redisson/RedissonReadLock.java +++ b/src/main/java/org/redisson/RedissonReadLock.java @@ -25,6 +25,7 @@ import org.redisson.client.codec.StringCodec; import org.redisson.client.protocol.RedisCommands; import org.redisson.command.CommandExecutor; import org.redisson.core.RLock; +import org.redisson.pubsub.LockPubSub; import io.netty.util.concurrent.Future; import io.netty.util.concurrent.FutureListener; @@ -96,7 +97,7 @@ public class RedissonReadLock extends RedissonLock implements RLock { "end; " + "end; " + "return nil; ", - Arrays.asList(getName(), getChannelName()), unlockMessage, internalLockLeaseTime, getLockName()); + Arrays.asList(getName(), getChannelName()), LockPubSub.unlockMessage, internalLockLeaseTime, getLockName()); if (opStatus == null) { throw new IllegalMonitorStateException("attempt to unlock read lock, not locked by current thread by node id: " + id + " thread-id: " + Thread.currentThread().getId()); @@ -120,7 +121,7 @@ public class RedissonReadLock extends RedissonLock implements RLock { "else " + "return 0; " + "end;", - Arrays.asList(getName(), getChannelName()), unlockMessage); + Arrays.asList(getName(), getChannelName()), LockPubSub.unlockMessage); result.addListener(new FutureListener() { @Override diff --git a/src/main/java/org/redisson/RedissonSemaphore.java b/src/main/java/org/redisson/RedissonSemaphore.java index 60ae2eb31..23511809d 100644 --- a/src/main/java/org/redisson/RedissonSemaphore.java +++ b/src/main/java/org/redisson/RedissonSemaphore.java @@ -41,8 +41,6 @@ public class RedissonSemaphore extends RedissonExpirable implements RSemaphore { final UUID id; - public static final Long unlockMessage = 0L; - private static final LockPubSub PUBSUB = new LockPubSub(); final CommandExecutor commandExecutor; @@ -173,7 +171,7 @@ public class RedissonSemaphore extends RedissonExpirable implements RSemaphore { commandExecutor.evalWrite(getName(), StringCodec.INSTANCE, RedisCommands.EVAL_OBJECT, "redis.call('incrby', KEYS[1], ARGV[1]); " + "redis.call('publish', KEYS[2], ARGV[2]); ", - Arrays.asList(getName(), getChannelName()), permits, unlockMessage); + Arrays.asList(getName(), getChannelName()), permits, LockPubSub.unlockMessage); } @Override @@ -206,7 +204,7 @@ public class RedissonSemaphore extends RedissonExpirable implements RSemaphore { + "redis.call('set', KEYS[1], ARGV[2]); " + "redis.call('publish', KEYS[2], ARGV[1]); " + "end;", - Arrays.asList(getName(), getChannelName()), unlockMessage, permits); + Arrays.asList(getName(), getChannelName()), LockPubSub.unlockMessage, permits); get(f); } diff --git a/src/main/java/org/redisson/RedissonWriteLock.java b/src/main/java/org/redisson/RedissonWriteLock.java index 38443f7bc..cab247783 100644 --- a/src/main/java/org/redisson/RedissonWriteLock.java +++ b/src/main/java/org/redisson/RedissonWriteLock.java @@ -25,6 +25,7 @@ import org.redisson.client.codec.StringCodec; import org.redisson.client.protocol.RedisCommands; import org.redisson.command.CommandExecutor; import org.redisson.core.RLock; +import org.redisson.pubsub.LockPubSub; import io.netty.util.concurrent.Future; import io.netty.util.concurrent.FutureListener; @@ -98,7 +99,7 @@ public class RedissonWriteLock extends RedissonLock implements RLock { "end; " + "end; " + "return nil;", - Arrays.asList(getName(), getChannelName()), unlockMessage, internalLockLeaseTime, getLockName()); + Arrays.asList(getName(), getChannelName()), LockPubSub.unlockMessage, internalLockLeaseTime, getLockName()); if (opStatus == null) { throw new IllegalMonitorStateException("attempt to unlock read lock, not locked by current thread by node id: " + id + " thread-id: " + Thread.currentThread().getId()); @@ -122,7 +123,7 @@ public class RedissonWriteLock extends RedissonLock implements RLock { "else " + "return 0; " + "end;", - Arrays.asList(getName(), getChannelName()), unlockMessage); + Arrays.asList(getName(), getChannelName()), LockPubSub.unlockMessage); result.addListener(new FutureListener() { @Override diff --git a/src/main/java/org/redisson/pubsub/LockPubSub.java b/src/main/java/org/redisson/pubsub/LockPubSub.java index 69c40beea..345d81cd0 100644 --- a/src/main/java/org/redisson/pubsub/LockPubSub.java +++ b/src/main/java/org/redisson/pubsub/LockPubSub.java @@ -15,13 +15,14 @@ */ package org.redisson.pubsub; -import org.redisson.RedissonLock; import org.redisson.RedissonLockEntry; import io.netty.util.concurrent.Promise; public class LockPubSub extends PublishSubscribe { + public static final Long unlockMessage = 0L; + @Override protected RedissonLockEntry createEntry(Promise newPromise) { return new RedissonLockEntry(newPromise); @@ -29,7 +30,7 @@ public class LockPubSub extends PublishSubscribe { @Override protected void onMessage(RedissonLockEntry value, Long message) { - if (message.equals(RedissonLock.unlockMessage)) { + if (message.equals(unlockMessage)) { value.getLatch().release(); } }