diff --git a/src/main/java/org/springframework/data/redis/connection/RedisZSetCommands.java b/src/main/java/org/springframework/data/redis/connection/RedisZSetCommands.java index d0582c2a5..d41bfb331 100644 --- a/src/main/java/org/springframework/data/redis/connection/RedisZSetCommands.java +++ b/src/main/java/org/springframework/data/redis/connection/RedisZSetCommands.java @@ -1046,8 +1046,8 @@ public interface RedisZSetCommands { } /** - * Get all the elements in {@link Range} from the sorted set at {@literal key} in reversed lexicographical ordering. Result is - * limited via {@link Limit}. + * Get all the elements in {@link Range} from the sorted set at {@literal key} in reversed lexicographical ordering. + * Result is limited via {@link Limit}. * * @param key must not be {@literal null}. * @param range must not be {@literal null}. diff --git a/src/main/java/org/springframework/data/redis/connection/jedis/JedisClusterZSetCommands.java b/src/main/java/org/springframework/data/redis/connection/jedis/JedisClusterZSetCommands.java index dbb6ab305..27c8c6d10 100644 --- a/src/main/java/org/springframework/data/redis/connection/jedis/JedisClusterZSetCommands.java +++ b/src/main/java/org/springframework/data/redis/connection/jedis/JedisClusterZSetCommands.java @@ -309,11 +309,11 @@ class JedisClusterZSetCommands implements RedisZSetCommands { public Set zRangeByLex(byte[] key, Range range, Limit limit) { Assert.notNull(key, "Key must not be null!"); - Assert.notNull(range, "Range cannot be null for ZRANGEBYLEX."); + Assert.notNull(range, "Range must not be null for ZRANGEBYLEX!"); Assert.notNull(limit, "Limit must not be null!"); - byte[] min = JedisConverters.boundaryToBytesForZRangeByLex(range.getMin(), JedisConverters.toBytes("-")); - byte[] max = JedisConverters.boundaryToBytesForZRangeByLex(range.getMax(), JedisConverters.toBytes("+")); + byte[] min = JedisConverters.boundaryToBytesForZRangeByLex(range.getMin(), JedisConverters.MINUS_BYTES); + byte[] max = JedisConverters.boundaryToBytesForZRangeByLex(range.getMax(), JedisConverters.PLUS_BYTES); try { if (limit.isUnlimited()) { @@ -333,7 +333,7 @@ class JedisClusterZSetCommands implements RedisZSetCommands { public Set zRevRangeByLex(byte[] key, Range range, Limit limit) { Assert.notNull(key, "Key must not be null!"); - Assert.notNull(range, "Range cannot be null for ZREVRANGEBYLEX."); + Assert.notNull(range, "Range must not be null for ZREVRANGEBYLEX!"); Assert.notNull(limit, "Limit must not be null!"); byte[] min = JedisConverters.boundaryToBytesForZRangeByLex(range.getMin(), JedisConverters.MINUS_BYTES); diff --git a/src/main/java/org/springframework/data/redis/connection/jedis/JedisZSetCommands.java b/src/main/java/org/springframework/data/redis/connection/jedis/JedisZSetCommands.java index b07f8cb62..5f4e65ad8 100644 --- a/src/main/java/org/springframework/data/redis/connection/jedis/JedisZSetCommands.java +++ b/src/main/java/org/springframework/data/redis/connection/jedis/JedisZSetCommands.java @@ -933,7 +933,8 @@ class JedisZSetCommands implements RedisZSetCommands { } if (!limit.isUnlimited()) { - return new LinkedHashSet<>(connection.getJedis().zrevrangeByLex(key, max, min, limit.getOffset(), limit.getCount())); + return new LinkedHashSet<>( + connection.getJedis().zrevrangeByLex(key, max, min, limit.getOffset(), limit.getCount())); } return new LinkedHashSet<>(connection.getJedis().zrevrangeByLex(key, max, min)); } catch (Exception ex) { diff --git a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceZSetCommands.java b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceZSetCommands.java index 58baec869..1ec643d27 100644 --- a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceZSetCommands.java +++ b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceZSetCommands.java @@ -892,25 +892,25 @@ class LettuceZSetCommands implements RedisZSetCommands { try { if (isPipelined()) { if (limit.isUnlimited()) { - pipeline( - connection.newLettuceResult(getAsyncConnection().zrevrangebylex(key, LettuceConverters.toRange(range, true)), - LettuceConverters.bytesListToBytesSet())); + pipeline(connection.newLettuceResult( + getAsyncConnection().zrevrangebylex(key, LettuceConverters.toRange(range, true)), + LettuceConverters.bytesListToBytesSet())); } else { - pipeline( - connection.newLettuceResult(getAsyncConnection().zrevrangebylex(key, LettuceConverters.toRange(range, true), - LettuceConverters.toLimit(limit)), LettuceConverters.bytesListToBytesSet())); + pipeline(connection.newLettuceResult(getAsyncConnection().zrevrangebylex(key, + LettuceConverters.toRange(range, true), LettuceConverters.toLimit(limit)), + LettuceConverters.bytesListToBytesSet())); } return null; } if (isQueueing()) { if (limit.isUnlimited()) { - transaction( - connection.newLettuceResult(getAsyncConnection().zrevrangebylex(key, LettuceConverters.toRange(range, true)), - LettuceConverters.bytesListToBytesSet())); + transaction(connection.newLettuceResult( + getAsyncConnection().zrevrangebylex(key, LettuceConverters.toRange(range, true)), + LettuceConverters.bytesListToBytesSet())); } else { - transaction( - connection.newLettuceResult(getAsyncConnection().zrevrangebylex(key, LettuceConverters.toRange(range, true), - LettuceConverters.toLimit(limit)), LettuceConverters.bytesListToBytesSet())); + transaction(connection.newLettuceResult(getAsyncConnection().zrevrangebylex(key, + LettuceConverters.toRange(range, true), LettuceConverters.toLimit(limit)), + LettuceConverters.bytesListToBytesSet())); } return null; } @@ -919,8 +919,8 @@ class LettuceZSetCommands implements RedisZSetCommands { return LettuceConverters.bytesListToBytesSet() .convert(getConnection().zrevrangebylex(key, LettuceConverters.toRange(range, true))); } - return LettuceConverters.bytesListToBytesSet().convert( - getConnection().zrevrangebylex(key, LettuceConverters.toRange(range, true), LettuceConverters.toLimit(limit))); + return LettuceConverters.bytesListToBytesSet().convert(getConnection().zrevrangebylex(key, + LettuceConverters.toRange(range, true), LettuceConverters.toLimit(limit))); } catch (Exception ex) { throw convertLettuceAccessException(ex); diff --git a/src/test/java/org/springframework/data/redis/connection/AbstractConnectionIntegrationTests.java b/src/test/java/org/springframework/data/redis/connection/AbstractConnectionIntegrationTests.java index ac505f919..5d594c133 100644 --- a/src/test/java/org/springframework/data/redis/connection/AbstractConnectionIntegrationTests.java +++ b/src/test/java/org/springframework/data/redis/connection/AbstractConnectionIntegrationTests.java @@ -2411,34 +2411,13 @@ public abstract class AbstractConnectionIntegrationTests { List results = getResults(); - Set values = (Set) results.get(7); - - assertThat(values).containsExactly("a", "b", "c"); - assertThat(values).doesNotContain("d", "e", "f", "g"); - - values = (Set) results.get(8); - assertThat(values).containsExactly("a", "b"); - assertThat(values).doesNotContain("c"); - - values = (Set) results.get(9); - assertThat(values).containsExactly("b", "c", "d", "e", "f"); - assertThat(values).doesNotContain("a", "g"); - - values = (Set) results.get(10); - assertThat(values).containsExactly("e", "f", "g"); - assertThat(values).doesNotContain("a", "b", "c", "d"); - - values = (Set) results.get(11); - assertThat(values).containsExactly("a", "b", "c"); - assertThat(values).doesNotContain("d", "e", "f", "g"); - - values = (Set) results.get(12); - assertThat(values).contains("a"); - assertThat(values).doesNotContain("b", "c", "d", "e", "f", "g"); - - values = (Set) results.get(13); - assertThat(values).contains("b"); - assertThat(values).doesNotContain("a", "c", "d", "e", "f", "g"); + assertThat((Set) results.get(7)).containsExactly("a", "b", "c").doesNotContain("d", "e", "f", "g"); + assertThat((Set) results.get(8)).containsExactly("a", "b").doesNotContain("c"); + assertThat((Set) results.get(9)).containsExactly("b", "c", "d", "e", "f").doesNotContain("a", "g"); + assertThat((Set) results.get(10)).containsExactly("e", "f", "g").doesNotContain("a", "b", "c", "d"); + assertThat((Set) results.get(11)).containsExactly("a", "b", "c").doesNotContain("d", "e", "f", "g"); + assertThat((Set) results.get(12)).contains("a").doesNotContain("b", "c", "d", "e", "f", "g"); + assertThat((Set) results.get(13)).contains("b").doesNotContain("a", "c", "d", "e", "f", "g"); } @SuppressWarnings("unchecked") @@ -2466,34 +2445,13 @@ public abstract class AbstractConnectionIntegrationTests { List results = getResults(); - Set values = (Set) results.get(7); - - assertThat(values).containsExactly("c", "b", "a"); - assertThat(values).doesNotContain("d", "e", "f", "g"); - - values = (Set) results.get(8); - assertThat(values).containsExactly("b", "a"); - assertThat(values).doesNotContain("c"); - - values = (Set) results.get(9); - assertThat(values).containsExactly("f", "e", "d", "c", "b"); - assertThat(values).doesNotContain("a", "g"); - - values = (Set) results.get(10); - assertThat(values).containsExactly("g", "f", "e"); - assertThat(values).doesNotContain("a", "b", "c", "d"); - - values = (Set) results.get(11); - assertThat(values).containsExactly("c", "b", "a"); - assertThat(values).doesNotContain("d", "e", "f", "g"); - - values = (Set) results.get(12); - assertThat(values).contains("d", "c"); - assertThat(values).doesNotContain("a", "b", "e", "f", "g"); - - values = (Set) results.get(13); - assertThat(values).contains("c", "b"); - assertThat(values).doesNotContain("a", "d", "e", "f", "g"); + assertThat((Set) results.get(7)).containsExactly("c", "b", "a").doesNotContain("d", "e", "f", "g"); + assertThat((Set) results.get(8)).containsExactly("b", "a").doesNotContain("c"); + assertThat((Set) results.get(9)).containsExactly("f", "e", "d", "c", "b").doesNotContain("a", "g"); + assertThat((Set) results.get(10)).containsExactly("g", "f", "e").doesNotContain("a", "b", "c", "d"); + assertThat((Set) results.get(11)).containsExactly("c", "b", "a").doesNotContain("d", "e", "f", "g"); + assertThat((Set) results.get(12)).contains("d", "c").doesNotContain("a", "b", "e", "f", "g"); + assertThat((Set) results.get(13)).contains("c", "b").doesNotContain("a", "d", "e", "f", "g"); } @Test(expected = IllegalArgumentException.class) // DATAREDIS-316, DATAREDIS-692