From 76b2555eb5d8b5a42909d83308bc7931ee70eed8 Mon Sep 17 00:00:00 2001 From: Nikita Koksharov Date: Mon, 11 Mar 2024 08:26:19 +0300 Subject: [PATCH] Fixed - RObject.addListenerAsync() method throws UnsupportedOperationException #5673 --- .../main/java/org/redisson/RedissonObject.java | 2 +- .../java/org/redisson/RedissonBucketTest.java | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) 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 -> {