From c8769a4cc0f01e300e94463af3a73ba590a5efc7 Mon Sep 17 00:00:00 2001 From: Nikita Koksharov Date: Thu, 4 Jun 2020 10:52:46 +0300 Subject: [PATCH] Fixed - RedisConnection.set() returns null #2811 --- .../spring/data/connection/RedissonConnection.java | 3 ++- .../spring/data/connection/RedissonConnection.java | 3 ++- .../spring/data/connection/RedissonConnection.java | 3 ++- .../data/connection/RedissonConnectionTest.java | 12 ++++++++++-- .../spring/data/connection/RedissonConnection.java | 3 ++- 5 files changed, 18 insertions(+), 6 deletions(-) diff --git a/redisson-spring-data/redisson-spring-data-20/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java b/redisson-spring-data/redisson-spring-data-20/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java index ba40bc750..5d459773c 100644 --- a/redisson-spring-data/redisson-spring-data-20/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java +++ b/redisson-spring-data/redisson-spring-data-20/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java @@ -28,6 +28,7 @@ import org.redisson.client.codec.*; import org.redisson.client.protocol.RedisCommand; import org.redisson.client.protocol.RedisCommands; import org.redisson.client.protocol.RedisStrictCommand; +import org.redisson.client.protocol.convertor.BooleanNullSafeReplayConvertor; import org.redisson.client.protocol.convertor.BooleanReplayConvertor; import org.redisson.client.protocol.convertor.DoubleReplayConvertor; import org.redisson.client.protocol.convertor.VoidReplayConvertor; @@ -477,7 +478,7 @@ public class RedissonConnection extends AbstractRedisConnection { return read(keys[0], ByteArrayCodec.INSTANCE, MGET, Arrays.asList(keys).toArray()); } - private static final RedisCommand SET = new RedisCommand("SET", new BooleanReplayConvertor()); + private static final RedisCommand SET = new RedisCommand<>("SET", new BooleanNullSafeReplayConvertor()); @Override public Boolean set(byte[] key, byte[] value) { diff --git a/redisson-spring-data/redisson-spring-data-21/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java b/redisson-spring-data/redisson-spring-data-21/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java index b4a3e87ad..634d4b467 100644 --- a/redisson-spring-data/redisson-spring-data-21/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java +++ b/redisson-spring-data/redisson-spring-data-21/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java @@ -54,6 +54,7 @@ import org.redisson.client.codec.StringCodec; import org.redisson.client.protocol.RedisCommand; import org.redisson.client.protocol.RedisCommands; import org.redisson.client.protocol.RedisStrictCommand; +import org.redisson.client.protocol.convertor.BooleanNullSafeReplayConvertor; import org.redisson.client.protocol.convertor.BooleanReplayConvertor; import org.redisson.client.protocol.convertor.DoubleReplayConvertor; import org.redisson.client.protocol.convertor.VoidReplayConvertor; @@ -512,7 +513,7 @@ public class RedissonConnection extends AbstractRedisConnection { return read(keys[0], ByteArrayCodec.INSTANCE, MGET, Arrays.asList(keys).toArray()); } - private static final RedisCommand SET = new RedisCommand("SET", new BooleanReplayConvertor()); + private static final RedisCommand SET = new RedisCommand<>("SET", new BooleanNullSafeReplayConvertor()); @Override public Boolean set(byte[] key, byte[] value) { diff --git a/redisson-spring-data/redisson-spring-data-22/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java b/redisson-spring-data/redisson-spring-data-22/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java index 19ccb00f0..d5a03691e 100644 --- a/redisson-spring-data/redisson-spring-data-22/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java +++ b/redisson-spring-data/redisson-spring-data-22/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java @@ -54,6 +54,7 @@ import org.redisson.client.codec.StringCodec; import org.redisson.client.protocol.RedisCommand; import org.redisson.client.protocol.RedisCommands; import org.redisson.client.protocol.RedisStrictCommand; +import org.redisson.client.protocol.convertor.BooleanNullSafeReplayConvertor; import org.redisson.client.protocol.convertor.BooleanReplayConvertor; import org.redisson.client.protocol.convertor.DoubleReplayConvertor; import org.redisson.client.protocol.convertor.VoidReplayConvertor; @@ -504,7 +505,7 @@ public class RedissonConnection extends AbstractRedisConnection { return read(keys[0], ByteArrayCodec.INSTANCE, MGET, Arrays.asList(keys).toArray()); } - private static final RedisCommand SET = new RedisCommand("SET", new BooleanReplayConvertor()); + private static final RedisCommand SET = new RedisCommand<>("SET", new BooleanNullSafeReplayConvertor()); @Override public Boolean set(byte[] key, byte[] value) { diff --git a/redisson-spring-data/redisson-spring-data-22/src/test/java/org/redisson/spring/data/connection/RedissonConnectionTest.java b/redisson-spring-data/redisson-spring-data-22/src/test/java/org/redisson/spring/data/connection/RedissonConnectionTest.java index a5bcbea03..a35577560 100644 --- a/redisson-spring-data/redisson-spring-data-22/src/test/java/org/redisson/spring/data/connection/RedissonConnectionTest.java +++ b/redisson-spring-data/redisson-spring-data-22/src/test/java/org/redisson/spring/data/connection/RedissonConnectionTest.java @@ -1,7 +1,5 @@ package org.redisson.spring.data.connection; -import static org.assertj.core.api.Assertions.assertThat; - import org.junit.Test; import org.springframework.data.redis.connection.RedisStringCommands.SetOption; import org.springframework.data.redis.connection.RedisZSetCommands; @@ -9,8 +7,18 @@ import org.springframework.data.redis.core.Cursor; import org.springframework.data.redis.core.ScanOptions; import org.springframework.data.redis.core.types.Expiration; +import static org.assertj.core.api.Assertions.assertThat; + public class RedissonConnectionTest extends BaseConnectionTest { + @Test + public void testSetExpiration2() { + assertThat(connection.set("key".getBytes(), "value".getBytes(), Expiration.milliseconds(10), SetOption.SET_IF_ABSENT)).isTrue(); + assertThat(connection.set("key".getBytes(), "value".getBytes(), Expiration.milliseconds(10), SetOption.SET_IF_ABSENT)).isFalse(); + assertThat(connection.set("key".getBytes(), "value".getBytes(), Expiration.milliseconds(10), SetOption.SET_IF_ABSENT)).isFalse(); + assertThat(connection.get("key".getBytes())).isEqualTo("value".getBytes()); + } + @Test public void testZSet() { connection.zAdd(new byte[] {1}, -1, new byte[] {1}); diff --git a/redisson-spring-data/redisson-spring-data-23/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java b/redisson-spring-data/redisson-spring-data-23/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java index 19ccb00f0..d5a03691e 100644 --- a/redisson-spring-data/redisson-spring-data-23/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java +++ b/redisson-spring-data/redisson-spring-data-23/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java @@ -54,6 +54,7 @@ import org.redisson.client.codec.StringCodec; import org.redisson.client.protocol.RedisCommand; import org.redisson.client.protocol.RedisCommands; import org.redisson.client.protocol.RedisStrictCommand; +import org.redisson.client.protocol.convertor.BooleanNullSafeReplayConvertor; import org.redisson.client.protocol.convertor.BooleanReplayConvertor; import org.redisson.client.protocol.convertor.DoubleReplayConvertor; import org.redisson.client.protocol.convertor.VoidReplayConvertor; @@ -504,7 +505,7 @@ public class RedissonConnection extends AbstractRedisConnection { return read(keys[0], ByteArrayCodec.INSTANCE, MGET, Arrays.asList(keys).toArray()); } - private static final RedisCommand SET = new RedisCommand("SET", new BooleanReplayConvertor()); + private static final RedisCommand SET = new RedisCommand<>("SET", new BooleanNullSafeReplayConvertor()); @Override public Boolean set(byte[] key, byte[] value) {