diff --git a/redisson-spring-data/redisson-spring-data-16/src/main/java/org/redisson/spring/data/connection/RedissonSubscription.java b/redisson-spring-data/redisson-spring-data-16/src/main/java/org/redisson/spring/data/connection/RedissonSubscription.java index d61a2ca2c..9d0a75c59 100644 --- a/redisson-spring-data/redisson-spring-data-16/src/main/java/org/redisson/spring/data/connection/RedissonSubscription.java +++ b/redisson-spring-data/redisson-spring-data-16/src/main/java/org/redisson/spring/data/connection/RedissonSubscription.java @@ -15,13 +15,11 @@ */ package org.redisson.spring.data.connection; -import org.redisson.api.RFuture; import org.redisson.client.BaseRedisPubSubListener; import org.redisson.client.ChannelName; import org.redisson.client.codec.ByteArrayCodec; import org.redisson.client.protocol.pubsub.PubSubType; import org.redisson.command.CommandAsyncExecutor; -import org.redisson.connection.ConnectionManager; import org.redisson.pubsub.PubSubConnectionEntry; import org.redisson.pubsub.PublishSubscribeService; import org.springframework.data.redis.connection.DefaultMessage; @@ -69,7 +67,7 @@ public class RedissonSubscription extends AbstractSubscription { list.add(f); } for (CompletableFuture future : list) { - commandExecutor.syncSubscription(future); + commandExecutor.get(future); } } @@ -99,7 +97,7 @@ public class RedissonSubscription extends AbstractSubscription { list.add(f); } for (CompletableFuture future : list) { - commandExecutor.syncSubscription(future); + commandExecutor.get(future); } } diff --git a/redisson-spring-data/redisson-spring-data-17/src/main/java/org/redisson/spring/data/connection/RedissonSubscription.java b/redisson-spring-data/redisson-spring-data-17/src/main/java/org/redisson/spring/data/connection/RedissonSubscription.java index d61a2ca2c..9d0a75c59 100644 --- a/redisson-spring-data/redisson-spring-data-17/src/main/java/org/redisson/spring/data/connection/RedissonSubscription.java +++ b/redisson-spring-data/redisson-spring-data-17/src/main/java/org/redisson/spring/data/connection/RedissonSubscription.java @@ -15,13 +15,11 @@ */ package org.redisson.spring.data.connection; -import org.redisson.api.RFuture; import org.redisson.client.BaseRedisPubSubListener; import org.redisson.client.ChannelName; import org.redisson.client.codec.ByteArrayCodec; import org.redisson.client.protocol.pubsub.PubSubType; import org.redisson.command.CommandAsyncExecutor; -import org.redisson.connection.ConnectionManager; import org.redisson.pubsub.PubSubConnectionEntry; import org.redisson.pubsub.PublishSubscribeService; import org.springframework.data.redis.connection.DefaultMessage; @@ -69,7 +67,7 @@ public class RedissonSubscription extends AbstractSubscription { list.add(f); } for (CompletableFuture future : list) { - commandExecutor.syncSubscription(future); + commandExecutor.get(future); } } @@ -99,7 +97,7 @@ public class RedissonSubscription extends AbstractSubscription { list.add(f); } for (CompletableFuture future : list) { - commandExecutor.syncSubscription(future); + commandExecutor.get(future); } } diff --git a/redisson-spring-data/redisson-spring-data-18/src/main/java/org/redisson/spring/data/connection/RedissonSubscription.java b/redisson-spring-data/redisson-spring-data-18/src/main/java/org/redisson/spring/data/connection/RedissonSubscription.java index d61a2ca2c..9d0a75c59 100644 --- a/redisson-spring-data/redisson-spring-data-18/src/main/java/org/redisson/spring/data/connection/RedissonSubscription.java +++ b/redisson-spring-data/redisson-spring-data-18/src/main/java/org/redisson/spring/data/connection/RedissonSubscription.java @@ -15,13 +15,11 @@ */ package org.redisson.spring.data.connection; -import org.redisson.api.RFuture; import org.redisson.client.BaseRedisPubSubListener; import org.redisson.client.ChannelName; import org.redisson.client.codec.ByteArrayCodec; import org.redisson.client.protocol.pubsub.PubSubType; import org.redisson.command.CommandAsyncExecutor; -import org.redisson.connection.ConnectionManager; import org.redisson.pubsub.PubSubConnectionEntry; import org.redisson.pubsub.PublishSubscribeService; import org.springframework.data.redis.connection.DefaultMessage; @@ -69,7 +67,7 @@ public class RedissonSubscription extends AbstractSubscription { list.add(f); } for (CompletableFuture future : list) { - commandExecutor.syncSubscription(future); + commandExecutor.get(future); } } @@ -99,7 +97,7 @@ public class RedissonSubscription extends AbstractSubscription { list.add(f); } for (CompletableFuture future : list) { - commandExecutor.syncSubscription(future); + commandExecutor.get(future); } } diff --git a/redisson-spring-data/redisson-spring-data-20/src/main/java/org/redisson/spring/data/connection/RedissonSubscription.java b/redisson-spring-data/redisson-spring-data-20/src/main/java/org/redisson/spring/data/connection/RedissonSubscription.java index 75b3c6d06..ff64b0dbb 100644 --- a/redisson-spring-data/redisson-spring-data-20/src/main/java/org/redisson/spring/data/connection/RedissonSubscription.java +++ b/redisson-spring-data/redisson-spring-data-20/src/main/java/org/redisson/spring/data/connection/RedissonSubscription.java @@ -15,13 +15,11 @@ */ package org.redisson.spring.data.connection; -import org.redisson.api.RFuture; import org.redisson.client.BaseRedisPubSubListener; import org.redisson.client.ChannelName; import org.redisson.client.codec.ByteArrayCodec; import org.redisson.client.protocol.pubsub.PubSubType; import org.redisson.command.CommandAsyncExecutor; -import org.redisson.connection.ConnectionManager; import org.redisson.pubsub.PubSubConnectionEntry; import org.redisson.pubsub.PublishSubscribeService; import org.springframework.data.redis.connection.DefaultMessage; @@ -69,7 +67,7 @@ public class RedissonSubscription extends AbstractSubscription { list.add(f); } for (CompletableFuture future : list) { - commandExecutor.syncSubscription(future); + commandExecutor.get(future); } } @@ -99,7 +97,7 @@ public class RedissonSubscription extends AbstractSubscription { list.add(f); } for (CompletableFuture future : list) { - commandExecutor.syncSubscription(future); + commandExecutor.get(future); } } diff --git a/redisson-spring-data/redisson-spring-data-21/src/main/java/org/redisson/spring/data/connection/RedissonSubscription.java b/redisson-spring-data/redisson-spring-data-21/src/main/java/org/redisson/spring/data/connection/RedissonSubscription.java index d61a2ca2c..9d0a75c59 100644 --- a/redisson-spring-data/redisson-spring-data-21/src/main/java/org/redisson/spring/data/connection/RedissonSubscription.java +++ b/redisson-spring-data/redisson-spring-data-21/src/main/java/org/redisson/spring/data/connection/RedissonSubscription.java @@ -15,13 +15,11 @@ */ package org.redisson.spring.data.connection; -import org.redisson.api.RFuture; import org.redisson.client.BaseRedisPubSubListener; import org.redisson.client.ChannelName; import org.redisson.client.codec.ByteArrayCodec; import org.redisson.client.protocol.pubsub.PubSubType; import org.redisson.command.CommandAsyncExecutor; -import org.redisson.connection.ConnectionManager; import org.redisson.pubsub.PubSubConnectionEntry; import org.redisson.pubsub.PublishSubscribeService; import org.springframework.data.redis.connection.DefaultMessage; @@ -69,7 +67,7 @@ public class RedissonSubscription extends AbstractSubscription { list.add(f); } for (CompletableFuture future : list) { - commandExecutor.syncSubscription(future); + commandExecutor.get(future); } } @@ -99,7 +97,7 @@ public class RedissonSubscription extends AbstractSubscription { list.add(f); } for (CompletableFuture future : list) { - commandExecutor.syncSubscription(future); + commandExecutor.get(future); } } diff --git a/redisson-spring-data/redisson-spring-data-22/src/main/java/org/redisson/spring/data/connection/RedissonSubscription.java b/redisson-spring-data/redisson-spring-data-22/src/main/java/org/redisson/spring/data/connection/RedissonSubscription.java index d61a2ca2c..9d0a75c59 100644 --- a/redisson-spring-data/redisson-spring-data-22/src/main/java/org/redisson/spring/data/connection/RedissonSubscription.java +++ b/redisson-spring-data/redisson-spring-data-22/src/main/java/org/redisson/spring/data/connection/RedissonSubscription.java @@ -15,13 +15,11 @@ */ package org.redisson.spring.data.connection; -import org.redisson.api.RFuture; import org.redisson.client.BaseRedisPubSubListener; import org.redisson.client.ChannelName; import org.redisson.client.codec.ByteArrayCodec; import org.redisson.client.protocol.pubsub.PubSubType; import org.redisson.command.CommandAsyncExecutor; -import org.redisson.connection.ConnectionManager; import org.redisson.pubsub.PubSubConnectionEntry; import org.redisson.pubsub.PublishSubscribeService; import org.springframework.data.redis.connection.DefaultMessage; @@ -69,7 +67,7 @@ public class RedissonSubscription extends AbstractSubscription { list.add(f); } for (CompletableFuture future : list) { - commandExecutor.syncSubscription(future); + commandExecutor.get(future); } } @@ -99,7 +97,7 @@ public class RedissonSubscription extends AbstractSubscription { list.add(f); } for (CompletableFuture future : list) { - commandExecutor.syncSubscription(future); + commandExecutor.get(future); } } diff --git a/redisson-spring-data/redisson-spring-data-23/src/main/java/org/redisson/spring/data/connection/RedissonSubscription.java b/redisson-spring-data/redisson-spring-data-23/src/main/java/org/redisson/spring/data/connection/RedissonSubscription.java index d61a2ca2c..9d0a75c59 100644 --- a/redisson-spring-data/redisson-spring-data-23/src/main/java/org/redisson/spring/data/connection/RedissonSubscription.java +++ b/redisson-spring-data/redisson-spring-data-23/src/main/java/org/redisson/spring/data/connection/RedissonSubscription.java @@ -15,13 +15,11 @@ */ package org.redisson.spring.data.connection; -import org.redisson.api.RFuture; import org.redisson.client.BaseRedisPubSubListener; import org.redisson.client.ChannelName; import org.redisson.client.codec.ByteArrayCodec; import org.redisson.client.protocol.pubsub.PubSubType; import org.redisson.command.CommandAsyncExecutor; -import org.redisson.connection.ConnectionManager; import org.redisson.pubsub.PubSubConnectionEntry; import org.redisson.pubsub.PublishSubscribeService; import org.springframework.data.redis.connection.DefaultMessage; @@ -69,7 +67,7 @@ public class RedissonSubscription extends AbstractSubscription { list.add(f); } for (CompletableFuture future : list) { - commandExecutor.syncSubscription(future); + commandExecutor.get(future); } } @@ -99,7 +97,7 @@ public class RedissonSubscription extends AbstractSubscription { list.add(f); } for (CompletableFuture future : list) { - commandExecutor.syncSubscription(future); + commandExecutor.get(future); } } diff --git a/redisson-spring-data/redisson-spring-data-24/src/main/java/org/redisson/spring/data/connection/RedissonSubscription.java b/redisson-spring-data/redisson-spring-data-24/src/main/java/org/redisson/spring/data/connection/RedissonSubscription.java index d61a2ca2c..9d0a75c59 100644 --- a/redisson-spring-data/redisson-spring-data-24/src/main/java/org/redisson/spring/data/connection/RedissonSubscription.java +++ b/redisson-spring-data/redisson-spring-data-24/src/main/java/org/redisson/spring/data/connection/RedissonSubscription.java @@ -15,13 +15,11 @@ */ package org.redisson.spring.data.connection; -import org.redisson.api.RFuture; import org.redisson.client.BaseRedisPubSubListener; import org.redisson.client.ChannelName; import org.redisson.client.codec.ByteArrayCodec; import org.redisson.client.protocol.pubsub.PubSubType; import org.redisson.command.CommandAsyncExecutor; -import org.redisson.connection.ConnectionManager; import org.redisson.pubsub.PubSubConnectionEntry; import org.redisson.pubsub.PublishSubscribeService; import org.springframework.data.redis.connection.DefaultMessage; @@ -69,7 +67,7 @@ public class RedissonSubscription extends AbstractSubscription { list.add(f); } for (CompletableFuture future : list) { - commandExecutor.syncSubscription(future); + commandExecutor.get(future); } } @@ -99,7 +97,7 @@ public class RedissonSubscription extends AbstractSubscription { list.add(f); } for (CompletableFuture future : list) { - commandExecutor.syncSubscription(future); + commandExecutor.get(future); } } diff --git a/redisson-spring-data/redisson-spring-data-25/src/main/java/org/redisson/spring/data/connection/RedissonSubscription.java b/redisson-spring-data/redisson-spring-data-25/src/main/java/org/redisson/spring/data/connection/RedissonSubscription.java index d61a2ca2c..9d0a75c59 100644 --- a/redisson-spring-data/redisson-spring-data-25/src/main/java/org/redisson/spring/data/connection/RedissonSubscription.java +++ b/redisson-spring-data/redisson-spring-data-25/src/main/java/org/redisson/spring/data/connection/RedissonSubscription.java @@ -15,13 +15,11 @@ */ package org.redisson.spring.data.connection; -import org.redisson.api.RFuture; import org.redisson.client.BaseRedisPubSubListener; import org.redisson.client.ChannelName; import org.redisson.client.codec.ByteArrayCodec; import org.redisson.client.protocol.pubsub.PubSubType; import org.redisson.command.CommandAsyncExecutor; -import org.redisson.connection.ConnectionManager; import org.redisson.pubsub.PubSubConnectionEntry; import org.redisson.pubsub.PublishSubscribeService; import org.springframework.data.redis.connection.DefaultMessage; @@ -69,7 +67,7 @@ public class RedissonSubscription extends AbstractSubscription { list.add(f); } for (CompletableFuture future : list) { - commandExecutor.syncSubscription(future); + commandExecutor.get(future); } } @@ -99,7 +97,7 @@ public class RedissonSubscription extends AbstractSubscription { list.add(f); } for (CompletableFuture future : list) { - commandExecutor.syncSubscription(future); + commandExecutor.get(future); } } diff --git a/redisson-spring-data/redisson-spring-data-26/src/main/java/org/redisson/spring/data/connection/RedissonSubscription.java b/redisson-spring-data/redisson-spring-data-26/src/main/java/org/redisson/spring/data/connection/RedissonSubscription.java index 78fc0753e..9d0a75c59 100644 --- a/redisson-spring-data/redisson-spring-data-26/src/main/java/org/redisson/spring/data/connection/RedissonSubscription.java +++ b/redisson-spring-data/redisson-spring-data-26/src/main/java/org/redisson/spring/data/connection/RedissonSubscription.java @@ -67,7 +67,7 @@ public class RedissonSubscription extends AbstractSubscription { list.add(f); } for (CompletableFuture future : list) { - commandExecutor.syncSubscription(future); + commandExecutor.get(future); } } @@ -97,7 +97,7 @@ public class RedissonSubscription extends AbstractSubscription { list.add(f); } for (CompletableFuture future : list) { - commandExecutor.syncSubscription(future); + commandExecutor.get(future); } } diff --git a/redisson/src/main/java/org/redisson/RedissonCountDownLatch.java b/redisson/src/main/java/org/redisson/RedissonCountDownLatch.java index 9e4bbdf6c..61cc14988 100644 --- a/redisson/src/main/java/org/redisson/RedissonCountDownLatch.java +++ b/redisson/src/main/java/org/redisson/RedissonCountDownLatch.java @@ -59,15 +59,14 @@ public class RedissonCountDownLatch extends RedissonObject implements RCountDown } CompletableFuture future = subscribe(); + RedissonCountDownLatchEntry entry = commandExecutor.getInterrupted(future); try { - commandExecutor.syncSubscriptionInterrupted(future); - while (getCount() > 0) { // waiting for open state - commandExecutor.getNow(future).getLatch().await(); + entry.getLatch().await(); } } finally { - unsubscribe(commandExecutor.getNow(future)); + unsubscribe(entry); } } diff --git a/redisson/src/main/java/org/redisson/RedissonLock.java b/redisson/src/main/java/org/redisson/RedissonLock.java index fccb4c5ba..b48219d09 100644 --- a/redisson/src/main/java/org/redisson/RedissonLock.java +++ b/redisson/src/main/java/org/redisson/RedissonLock.java @@ -100,10 +100,11 @@ public class RedissonLock extends RedissonBaseLock { } CompletableFuture future = subscribe(threadId); + RedissonLockEntry entry; if (interruptibly) { - commandExecutor.syncSubscriptionInterrupted(future); + entry = commandExecutor.getInterrupted(future); } else { - commandExecutor.syncSubscription(future); + entry = commandExecutor.get(future); } try { @@ -117,23 +118,23 @@ public class RedissonLock extends RedissonBaseLock { // waiting for message if (ttl >= 0) { try { - commandExecutor.getNow(future).getLatch().tryAcquire(ttl, TimeUnit.MILLISECONDS); + entry.getLatch().tryAcquire(ttl, TimeUnit.MILLISECONDS); } catch (InterruptedException e) { if (interruptibly) { throw e; } - commandExecutor.getNow(future).getLatch().tryAcquire(ttl, TimeUnit.MILLISECONDS); + entry.getLatch().tryAcquire(ttl, TimeUnit.MILLISECONDS); } } else { if (interruptibly) { - commandExecutor.getNow(future).getLatch().acquire(); + entry.getLatch().acquire(); } else { - commandExecutor.getNow(future).getLatch().acquireUninterruptibly(); + entry.getLatch().acquireUninterruptibly(); } } } } finally { - unsubscribe(commandExecutor.getNow(future), threadId); + unsubscribe(entry, threadId); } // get(lockAsync(leaseTime, unit)); } diff --git a/redisson/src/main/java/org/redisson/RedissonPatternTopic.java b/redisson/src/main/java/org/redisson/RedissonPatternTopic.java index 80e774242..b9d0f2180 100644 --- a/redisson/src/main/java/org/redisson/RedissonPatternTopic.java +++ b/redisson/src/main/java/org/redisson/RedissonPatternTopic.java @@ -75,7 +75,7 @@ public class RedissonPatternTopic implements RPatternTopic { private int addListener(RedisPubSubListener pubSubListener) { CompletableFuture> future = subscribeService.psubscribe(channelName, codec, pubSubListener); - commandExecutor.syncSubscription(future); + commandExecutor.get(future); return System.identityHashCode(pubSubListener); } @@ -115,7 +115,7 @@ public class RedissonPatternTopic implements RPatternTopic { @Override public void removeListener(int listenerId) { - commandExecutor.syncSubscription(removeListenerAsync(listenerId).toCompletableFuture()); + commandExecutor.get(removeListenerAsync(listenerId).toCompletableFuture()); } @Override @@ -138,7 +138,7 @@ public class RedissonPatternTopic implements RPatternTopic { @Override public void removeListener(PatternMessageListener listener) { CompletableFuture future = subscribeService.removeListenerAsync(PubSubType.PUNSUBSCRIBE, channelName, listener); - commandExecutor.syncSubscription(future); + commandExecutor.get(future); } @Override diff --git a/redisson/src/main/java/org/redisson/RedissonPermitExpirableSemaphore.java b/redisson/src/main/java/org/redisson/RedissonPermitExpirableSemaphore.java index aca9b9b4b..edceeb3e2 100644 --- a/redisson/src/main/java/org/redisson/RedissonPermitExpirableSemaphore.java +++ b/redisson/src/main/java/org/redisson/RedissonPermitExpirableSemaphore.java @@ -87,7 +87,7 @@ public class RedissonPermitExpirableSemaphore extends RedissonExpirable implemen } CompletableFuture future = subscribe(); - commandExecutor.syncSubscriptionInterrupted(future); + RedissonLockEntry entry = commandExecutor.getInterrupted(future); try { while (true) { Long nearestTimeout; @@ -103,13 +103,13 @@ public class RedissonPermitExpirableSemaphore extends RedissonExpirable implemen } if (nearestTimeout != null) { - commandExecutor.getNow(future).getLatch().tryAcquire(permits, nearestTimeout, TimeUnit.MILLISECONDS); + entry.getLatch().tryAcquire(permits, nearestTimeout, TimeUnit.MILLISECONDS); } else { - commandExecutor.getNow(future).getLatch().acquire(permits); + entry.getLatch().acquire(permits); } } } finally { - unsubscribe(commandExecutor.getNow(future)); + unsubscribe(entry); } // return get(acquireAsync(permits, ttl, timeUnit)); } diff --git a/redisson/src/main/java/org/redisson/RedissonSemaphore.java b/redisson/src/main/java/org/redisson/RedissonSemaphore.java index 28a578136..ccbc2e99d 100644 --- a/redisson/src/main/java/org/redisson/RedissonSemaphore.java +++ b/redisson/src/main/java/org/redisson/RedissonSemaphore.java @@ -80,17 +80,17 @@ public class RedissonSemaphore extends RedissonExpirable implements RSemaphore { } CompletableFuture future = subscribe(); - commandExecutor.syncSubscriptionInterrupted(future); + RedissonLockEntry entry = commandExecutor.getInterrupted(future); try { while (true) { if (tryAcquire(permits)) { return; } - commandExecutor.getNow(future).getLatch().acquire(); + entry.getLatch().acquire(); } } finally { - unsubscribe(commandExecutor.getNow(future)); + unsubscribe(entry); } // get(acquireAsync(permits)); } diff --git a/redisson/src/main/java/org/redisson/RedissonTopic.java b/redisson/src/main/java/org/redisson/RedissonTopic.java index 0052f4fea..00e167030 100644 --- a/redisson/src/main/java/org/redisson/RedissonTopic.java +++ b/redisson/src/main/java/org/redisson/RedissonTopic.java @@ -104,15 +104,13 @@ public class RedissonTopic implements RTopic { @Override public int addListener(StatusListener listener) { RFuture future = addListenerAsync(listener); - commandExecutor.syncSubscription(future.toCompletableFuture()); - return commandExecutor.getNow(future.toCompletableFuture()); + return commandExecutor.get(future.toCompletableFuture()); }; @Override public int addListener(Class type, MessageListener listener) { RFuture future = addListenerAsync(type, (MessageListener) listener); - commandExecutor.syncSubscription(future.toCompletableFuture()); - return commandExecutor.getNow(future.toCompletableFuture()); + return commandExecutor.get(future.toCompletableFuture()); } @Override @@ -163,7 +161,7 @@ public class RedissonTopic implements RTopic { @Override public void removeListener(MessageListener listener) { RFuture future = removeListenerAsync(listener); - commandExecutor.syncSubscription(future.toCompletableFuture()); + commandExecutor.get(future.toCompletableFuture()); } @Override @@ -180,7 +178,7 @@ public class RedissonTopic implements RTopic { @Override public void removeListener(Integer... listenerIds) { - commandExecutor.syncSubscription(removeListenerAsync(listenerIds).toCompletableFuture()); + commandExecutor.get(removeListenerAsync(listenerIds).toCompletableFuture()); } @Override diff --git a/redisson/src/main/java/org/redisson/command/CommandAsyncExecutor.java b/redisson/src/main/java/org/redisson/command/CommandAsyncExecutor.java index 10436f69e..e19a808a7 100644 --- a/redisson/src/main/java/org/redisson/command/CommandAsyncExecutor.java +++ b/redisson/src/main/java/org/redisson/command/CommandAsyncExecutor.java @@ -45,10 +45,6 @@ public interface CommandAsyncExecutor { RedisException convertException(ExecutionException e); - void syncSubscription(CompletableFuture future); - - void syncSubscriptionInterrupted(CompletableFuture future) throws InterruptedException; - void transfer(CompletableFuture future1, CompletableFuture future2); V getNow(CompletableFuture future); diff --git a/redisson/src/main/java/org/redisson/command/CommandAsyncService.java b/redisson/src/main/java/org/redisson/command/CommandAsyncService.java index 0e0c943a4..9eca7a101 100644 --- a/redisson/src/main/java/org/redisson/command/CommandAsyncService.java +++ b/redisson/src/main/java/org/redisson/command/CommandAsyncService.java @@ -82,16 +82,6 @@ public class CommandAsyncService implements CommandAsyncExecutor { return objectBuilder != null; } - @Override - public void syncSubscription(CompletableFuture future) { - get(future); - } - - @Override - public void syncSubscriptionInterrupted(CompletableFuture future) throws InterruptedException { - getInterrupted(future); - } - @Override public V getNow(CompletableFuture future) { try {