From 22ddb6a6711acda0e088db99b961c0d60801bc7c Mon Sep 17 00:00:00 2001 From: Nikita Koksharov Date: Mon, 8 Jul 2019 10:06:28 +0300 Subject: [PATCH] Fixed - RedissonConnection.set returns null if invoked with expiration parameter. #2217 --- .../spring/data/connection/RedissonConnection.java | 9 +++------ .../spring/data/connection/RedissonConnection.java | 6 +++--- .../spring/data/connection/RedissonConnectionTest.java | 8 ++++++++ 3 files changed, 14 insertions(+), 9 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 d7433d035..8120222d6 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 @@ -100,9 +100,6 @@ import org.springframework.data.redis.core.types.RedisClientInfo; import org.springframework.util.Assert; import org.springframework.util.ReflectionUtils; -import io.netty.util.concurrent.Future; -import io.netty.util.concurrent.FutureListener; - /** * Redisson connection * @@ -612,13 +609,13 @@ public class RedissonConnection extends AbstractRedisConnection { } } else { if (option == null || option == SetOption.UPSERT) { - return write(key, StringCodec.INSTANCE, RedisCommands.SET, key, value, "PX", expiration.getExpirationTimeInMilliseconds()); + return write(key, StringCodec.INSTANCE, SET, key, value, "PX", expiration.getExpirationTimeInMilliseconds()); } if (option == SetOption.SET_IF_ABSENT) { - return write(key, StringCodec.INSTANCE, RedisCommands.SET, key, value, "PX", expiration.getExpirationTimeInMilliseconds(), "NX"); + return write(key, StringCodec.INSTANCE, SET, key, value, "PX", expiration.getExpirationTimeInMilliseconds(), "NX"); } if (option == SetOption.SET_IF_PRESENT) { - return write(key, StringCodec.INSTANCE, RedisCommands.SET, key, value, "PX", expiration.getExpirationTimeInMilliseconds(), "XX"); + return write(key, StringCodec.INSTANCE, SET, key, value, "PX", expiration.getExpirationTimeInMilliseconds(), "XX"); } } throw new IllegalArgumentException(); 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 463731a84..c7ef6914a 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 @@ -609,13 +609,13 @@ public class RedissonConnection extends AbstractRedisConnection { } } else { if (option == null || option == SetOption.UPSERT) { - return write(key, StringCodec.INSTANCE, RedisCommands.SET, key, value, "PX", expiration.getExpirationTimeInMilliseconds()); + return write(key, StringCodec.INSTANCE, SET, key, value, "PX", expiration.getExpirationTimeInMilliseconds()); } if (option == SetOption.SET_IF_ABSENT) { - return write(key, StringCodec.INSTANCE, RedisCommands.SET, key, value, "PX", expiration.getExpirationTimeInMilliseconds(), "NX"); + return write(key, StringCodec.INSTANCE, SET, key, value, "PX", expiration.getExpirationTimeInMilliseconds(), "NX"); } if (option == SetOption.SET_IF_PRESENT) { - return write(key, StringCodec.INSTANCE, RedisCommands.SET, key, value, "PX", expiration.getExpirationTimeInMilliseconds(), "XX"); + return write(key, StringCodec.INSTANCE, SET, key, value, "PX", expiration.getExpirationTimeInMilliseconds(), "XX"); } } throw new IllegalArgumentException(); diff --git a/redisson-spring-data/redisson-spring-data-21/src/test/java/org/redisson/spring/data/connection/RedissonConnectionTest.java b/redisson-spring-data/redisson-spring-data-21/src/test/java/org/redisson/spring/data/connection/RedissonConnectionTest.java index ee2b0ce01..cb2e811fa 100644 --- a/redisson-spring-data/redisson-spring-data-21/src/test/java/org/redisson/spring/data/connection/RedissonConnectionTest.java +++ b/redisson-spring-data/redisson-spring-data-21/src/test/java/org/redisson/spring/data/connection/RedissonConnectionTest.java @@ -3,6 +3,8 @@ 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.core.types.Expiration; public class RedissonConnectionTest extends BaseConnectionTest { @@ -17,6 +19,12 @@ public class RedissonConnectionTest extends BaseConnectionTest { assertThat(connection.get("key".getBytes())).isEqualTo("value".getBytes()); } + @Test + public void testSetExpiration() { + assertThat(connection.set("key".getBytes(), "value".getBytes(), Expiration.milliseconds(111122), SetOption.SET_IF_ABSENT)).isTrue(); + assertThat(connection.get("key".getBytes())).isEqualTo("value".getBytes()); + } + @Test public void testHSetGet() { assertThat(connection.hSet("key".getBytes(), "field".getBytes(), "value".getBytes())).isTrue();