diff --git a/redisson/src/main/java/org/redisson/command/CommandBatchService.java b/redisson/src/main/java/org/redisson/command/CommandBatchService.java index 267fece6f..31c6ebc46 100644 --- a/redisson/src/main/java/org/redisson/command/CommandBatchService.java +++ b/redisson/src/main/java/org/redisson/command/CommandBatchService.java @@ -327,7 +327,10 @@ public class CommandBatchService extends CommandAsyncService { ChannelFuture future = connection.send(new CommandsData(main, list, new ArrayList(entry.getCommands()))); details.setWriteFuture(future); } else { - ChannelFuture future = connection.send(new CommandData(details.getAttemptPromise(), details.getCodec(), details.getCommand(), details.getParams())); + RPromise main = new RedissonPromise(); + List> list = new LinkedList>(); + list.add(new CommandData(details.getAttemptPromise(), details.getCodec(), details.getCommand(), details.getParams())); + ChannelFuture future = connection.send(new CommandsData(main, list, true)); details.setWriteFuture(future); } } @@ -408,7 +411,9 @@ public class CommandBatchService extends CommandAsyncService { } if (commands.isEmpty()) { - return RedissonPromise.newSucceededFuture(null); + executed.set(true); + BatchResult result = new BatchResult(Collections.emptyList(), 0); + return (RFuture) RedissonPromise.newSucceededFuture(result); } if (this.options == null) { diff --git a/redisson/src/test/java/org/redisson/RedissonBatchTest.java b/redisson/src/test/java/org/redisson/RedissonBatchTest.java index d681a06be..4881b11e0 100644 --- a/redisson/src/test/java/org/redisson/RedissonBatchTest.java +++ b/redisson/src/test/java/org/redisson/RedissonBatchTest.java @@ -96,6 +96,14 @@ public class RedissonBatchTest extends BaseTest { assertThat(set.getScore("abc")).isEqualTo(1d); RBucket bucket = redisson.getBucket("test"); assertThat(bucket.get()).isEqualTo("1"); + + RBatch batch2 = redisson.createBatch(batchOptions); + RFuture b2f1 = batch2.getScoredSortedSet("myZKey2").addScoreAsync("abc", 1d); + RFuture b2f2 = batch2.getScoredSortedSet("myZKey2").addScoreAsync("abc", 1d); + batch2.execute(); + + assertThat(b2f1.get()).isEqualTo(1d); + assertThat(b2f2.get()).isEqualTo(2d); } @Test