diff --git a/redisson/src/main/java/org/redisson/RedissonObject.java b/redisson/src/main/java/org/redisson/RedissonObject.java index c462c2194..98f5f2fed 100644 --- a/redisson/src/main/java/org/redisson/RedissonObject.java +++ b/redisson/src/main/java/org/redisson/RedissonObject.java @@ -513,7 +513,7 @@ public abstract class RedissonObject implements RObject { } protected final RFuture removeListenerAsync(int listenerId, String... names) { - List ns = Arrays.asList(names); + List ns = new ArrayList<>(Arrays.asList(names)); ns.addAll(Arrays.asList("__keyevent@*:expired", "__keyevent@*:del")); return removeListenerAsync(null, listenerId, ns.toArray(new String[0])); } diff --git a/redisson/src/test/java/org/redisson/RedissonBucketTest.java b/redisson/src/test/java/org/redisson/RedissonBucketTest.java index f216a902b..89e444940 100755 --- a/redisson/src/test/java/org/redisson/RedissonBucketTest.java +++ b/redisson/src/test/java/org/redisson/RedissonBucketTest.java @@ -297,7 +297,20 @@ public class RedissonBucketTest extends RedisDockerTest { } }, NOTIFY_KEYSPACE_EVENTS, "Eg"); } - + + @Test + public void testRemoveListenerAsync() { + testWithParams(redisson -> { + RBucket al = redisson.getBucket("test"); + int id = al.addListenerAsync(new SetObjectListener() { + @Override + public void onSet(String name) { + } + }).toCompletableFuture().join(); + al.removeListenerAsync(id).toCompletableFuture().join(); + }, NOTIFY_KEYSPACE_EVENTS, "E$"); + } + @Test public void testSetListener() { testWithParams(redisson -> {