From e97f78dd889bd02936616fa0a79b25ad75e09458 Mon Sep 17 00:00:00 2001 From: Nikita Koksharov Date: Wed, 6 Nov 2019 15:23:04 +0300 Subject: [PATCH] Fixed - Spring Data ZRangeByScore method doesn't support Infinity Double value #2396 --- .../spring/data/connection/RedissonConnection.java | 3 ++- .../spring/data/connection/RedissonConnection.java | 3 ++- .../spring/data/connection/RedissonConnection.java | 3 ++- .../spring/data/connection/RedissonConnection.java | 3 ++- .../spring/data/connection/RedissonConnection.java | 3 ++- .../spring/data/connection/RedissonConnection.java | 3 ++- .../data/connection/RedissonConnectionTest.java | 12 +++++++++++- 7 files changed, 23 insertions(+), 7 deletions(-) diff --git a/redisson-spring-data/redisson-spring-data-16/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java b/redisson-spring-data/redisson-spring-data-16/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java index 6c34f8209..057fbc63b 100644 --- a/redisson-spring-data/redisson-spring-data-16/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java +++ b/redisson-spring-data/redisson-spring-data-16/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java @@ -1001,8 +1001,9 @@ public class RedissonConnection extends AbstractRedisConnection { if (score instanceof Double) { if (Double.isInfinite((Double) score)) { element.append((Double)score > 0 ? "+inf" : "-inf"); + } else { + element.append(BigDecimal.valueOf((Double)score).toPlainString()); } - element.append(BigDecimal.valueOf((Double)score).toPlainString()); } else { element.append(score); } diff --git a/redisson-spring-data/redisson-spring-data-17/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java b/redisson-spring-data/redisson-spring-data-17/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java index 7d48b7b90..f093fff8b 100644 --- a/redisson-spring-data/redisson-spring-data-17/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java +++ b/redisson-spring-data/redisson-spring-data-17/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java @@ -1058,8 +1058,9 @@ public class RedissonConnection extends AbstractRedisConnection { if (score instanceof Double) { if (Double.isInfinite((Double) score)) { element.append((Double)score > 0 ? "+inf" : "-inf"); + } else { + element.append(BigDecimal.valueOf((Double)score).toPlainString()); } - element.append(BigDecimal.valueOf((Double)score).toPlainString()); } else { element.append(score); } diff --git a/redisson-spring-data/redisson-spring-data-18/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java b/redisson-spring-data/redisson-spring-data-18/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java index 98347aabe..21b5da611 100644 --- a/redisson-spring-data/redisson-spring-data-18/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java +++ b/redisson-spring-data/redisson-spring-data-18/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java @@ -1074,8 +1074,9 @@ public class RedissonConnection extends AbstractRedisConnection { if (score instanceof Double) { if (Double.isInfinite((Double) score)) { element.append((Double)score > 0 ? "+inf" : "-inf"); + } else { + element.append(BigDecimal.valueOf((Double)score).toPlainString()); } - element.append(BigDecimal.valueOf((Double)score).toPlainString()); } else { element.append(score); } 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 991db16e9..d84a9eecd 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 @@ -1055,8 +1055,9 @@ public class RedissonConnection extends AbstractRedisConnection { if (score instanceof Double) { if (Double.isInfinite((Double) score)) { element.append((Double)score > 0 ? "+inf" : "-inf"); + } else { + element.append(BigDecimal.valueOf((Double)score).toPlainString()); } - element.append(BigDecimal.valueOf((Double)score).toPlainString()); } else { element.append(score); } 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 168d113e1..dd49f03de 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 @@ -1085,8 +1085,9 @@ public class RedissonConnection extends AbstractRedisConnection { if (score instanceof Double) { if (Double.isInfinite((Double) score)) { element.append((Double)score > 0 ? "+inf" : "-inf"); + } else { + element.append(BigDecimal.valueOf((Double)score).toPlainString()); } - element.append(BigDecimal.valueOf((Double)score).toPlainString()); } else { element.append(score); } 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 ef8ca0701..f80ed9403 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 @@ -1077,8 +1077,9 @@ public class RedissonConnection extends AbstractRedisConnection { if (score instanceof Double) { if (Double.isInfinite((Double) score)) { element.append((Double)score > 0 ? "+inf" : "-inf"); + } else { + element.append(BigDecimal.valueOf((Double)score).toPlainString()); } - element.append(BigDecimal.valueOf((Double)score).toPlainString()); } else { element.append(score); } 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 4f9a4e3a8..1c457076f 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 @@ -10,7 +10,17 @@ import org.springframework.data.redis.core.ScanOptions; import org.springframework.data.redis.core.types.Expiration; public class RedissonConnectionTest extends BaseConnectionTest { - + + @Test + public void testZSet() { + connection.zAdd(new byte[] {1}, -1, new byte[] {1}); + connection.zAdd(new byte[] {1}, 2, new byte[] {2}); + connection.zAdd(new byte[] {1}, 10, new byte[] {3}); + + assertThat(connection.zRangeByScore(new byte[] {1}, Double.NEGATIVE_INFINITY, 100)) + .containsOnly(new byte[] {1}, new byte[] {2}); + } + @Test public void testEcho() { assertThat(connection.echo("test".getBytes())).isEqualTo("test".getBytes());