diff --git a/redisson/src/main/java/org/redisson/RedissonObject.java b/redisson/src/main/java/org/redisson/RedissonObject.java index fe8b1a944..56ebc05f0 100644 --- a/redisson/src/main/java/org/redisson/RedissonObject.java +++ b/redisson/src/main/java/org/redisson/RedissonObject.java @@ -45,7 +45,7 @@ import io.netty.buffer.ByteBuf; public abstract class RedissonObject implements RObject { protected final CommandAsyncExecutor commandExecutor; - private final String name; + private String name; protected final Codec codec; public RedissonObject(Codec codec, CommandAsyncExecutor commandExecutor, String name) { @@ -132,7 +132,13 @@ public abstract class RedissonObject implements RObject { @Override public RFuture renameAsync(String newName) { - return commandExecutor.writeAsync(getName(), StringCodec.INSTANCE, RedisCommands.RENAME, getName(), newName); + RFuture f = commandExecutor.writeAsync(getName(), StringCodec.INSTANCE, RedisCommands.RENAME, getName(), newName); + f.onComplete((r, e) -> { + if (e == null) { + this.name = newName; + } + }); + return f; } @Override @@ -172,7 +178,14 @@ public abstract class RedissonObject implements RObject { @Override public RFuture renamenxAsync(String newName) { - return commandExecutor.writeAsync(getName(), StringCodec.INSTANCE, RedisCommands.RENAMENX, getName(), newName); + RFuture f = commandExecutor.writeAsync(getName(), StringCodec.INSTANCE, RedisCommands.RENAMENX, getName(), newName); + f.onComplete((value, e) -> { + if (e == null && value) { + this.name = newName; + } + }); + return f; + } @Override diff --git a/redisson/src/test/java/org/redisson/RedissonBucketTest.java b/redisson/src/test/java/org/redisson/RedissonBucketTest.java index ad2332cc1..95cd2d561 100755 --- a/redisson/src/test/java/org/redisson/RedissonBucketTest.java +++ b/redisson/src/test/java/org/redisson/RedissonBucketTest.java @@ -155,10 +155,11 @@ public class RedissonBucketTest extends BaseTest { RBucket bucket2 = redisson.getBucket("test2"); bucket2.set("someValue2"); Assert.assertTrue(bucket.renamenx("test1")); + bucket.set("value1"); RBucket oldBucket = redisson.getBucket("test"); Assert.assertNull(oldBucket.get()); RBucket newBucket = redisson.getBucket("test1"); - Assert.assertEquals("someValue", newBucket.get()); + Assert.assertEquals("value1", newBucket.get()); Assert.assertFalse(newBucket.renamenx("test2")); } @@ -215,10 +216,11 @@ public class RedissonBucketTest extends BaseTest { RBucket bucket = redisson.getBucket("test"); bucket.set("someValue"); bucket.rename("test1"); + bucket.set("value1"); RBucket oldBucket = redisson.getBucket("test"); Assert.assertNull(oldBucket.get()); RBucket newBucket = redisson.getBucket("test1"); - Assert.assertEquals("someValue", newBucket.get()); + Assert.assertEquals("value1", newBucket.get()); } @Test