diff --git a/src/main/java/org/springframework/data/redis/connection/DefaultSortParameters.java b/src/main/java/org/springframework/data/redis/connection/DefaultSortParameters.java index 7070c2740..6965abf9b 100644 --- a/src/main/java/org/springframework/data/redis/connection/DefaultSortParameters.java +++ b/src/main/java/org/springframework/data/redis/connection/DefaultSortParameters.java @@ -98,6 +98,10 @@ public class DefaultSortParameters implements SortParameters { public void setGetPattern(byte[][] gPattern) { getPattern.clear(); + if(gPattern == null) { + return; + } + for (byte[] bs : gPattern) { getPattern.add(bs); } diff --git a/src/main/java/org/springframework/data/redis/connection/jredis/JredisConnection.java b/src/main/java/org/springframework/data/redis/connection/jredis/JredisConnection.java index 36ba40a89..8e7a2d2fd 100644 --- a/src/main/java/org/springframework/data/redis/connection/jredis/JredisConnection.java +++ b/src/main/java/org/springframework/data/redis/connection/jredis/JredisConnection.java @@ -160,7 +160,7 @@ public class JredisConnection implements RedisConnection { public Long sort(byte[] key, SortParameters params, byte[] storeKey) { Sort sort = jredis.sort(JredisUtils.decode(key)); - JredisUtils.applySortingParams(sort, params, null); + JredisUtils.applySortingParams(sort, params, storeKey); try { return Support.unpackValue(sort.exec()); } catch (Exception 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 4e7a9392e..8626ce176 100644 --- a/src/test/java/org/springframework/data/redis/connection/AbstractConnectionIntegrationTests.java +++ b/src/test/java/org/springframework/data/redis/connection/AbstractConnectionIntegrationTests.java @@ -39,6 +39,7 @@ import org.springframework.dao.DataAccessException; import org.springframework.data.redis.Address; import org.springframework.data.redis.ConnectionFactoryTracker; import org.springframework.data.redis.Person; +import org.springframework.data.redis.connection.SortParameters.Order; import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory; import org.springframework.data.redis.connection.rjc.RjcConnectionFactory; import org.springframework.data.redis.connection.srp.SrpConnectionFactory; @@ -401,6 +402,17 @@ public abstract class AbstractConnectionIntegrationTests { assertNull(connection.bRPop(1, "rclist")); } + @Test + public void testSortStore() { + connection.del("sortlist"); + connection.rPush("sortlist", "foo"); + connection.rPush("sortlist", "bar"); + connection.rPush("sortlist", "baz"); + assertEquals(Long.valueOf(3), + connection.sort("sortlist", new DefaultSortParameters(null, Order.ASC, true), "newlist")); + assertEquals(Arrays.asList(new String[] {"bar", "baz", "foo"}), connection.lRange("newlist", 0, 9)); + } + private boolean isAsync() { return (getConnectionFactory() instanceof LettuceConnectionFactory) || (getConnectionFactory() instanceof SrpConnectionFactory); diff --git a/src/test/java/org/springframework/data/redis/connection/rjc/RjcConnectionIntegrationTests.java b/src/test/java/org/springframework/data/redis/connection/rjc/RjcConnectionIntegrationTests.java index f32975286..ef21968d6 100644 --- a/src/test/java/org/springframework/data/redis/connection/rjc/RjcConnectionIntegrationTests.java +++ b/src/test/java/org/springframework/data/redis/connection/rjc/RjcConnectionIntegrationTests.java @@ -21,6 +21,7 @@ import static org.junit.Assert.assertNull; import java.util.List; import java.util.UUID; +import org.junit.Ignore; import org.junit.Test; import org.springframework.data.redis.SettingsUtils; import org.springframework.data.redis.connection.AbstractConnectionIntegrationTests; @@ -77,4 +78,8 @@ public class RjcConnectionIntegrationTests extends AbstractConnectionIntegration List result = connection.closePipeline(); assertEquals(4, result.size()); } + + @Ignore("DATAREDIS-134 string ops do not work with encoded values") + public void testSortStore() { + } } diff --git a/src/test/java/org/springframework/data/redis/connection/srp/SrpConnectionIntegrationTests.java b/src/test/java/org/springframework/data/redis/connection/srp/SrpConnectionIntegrationTests.java index db8920582..6fe81f602 100644 --- a/src/test/java/org/springframework/data/redis/connection/srp/SrpConnectionIntegrationTests.java +++ b/src/test/java/org/springframework/data/redis/connection/srp/SrpConnectionIntegrationTests.java @@ -44,8 +44,11 @@ public class SrpConnectionIntegrationTests extends AbstractConnectionIntegration public void testNullCollections() throws Exception { } - //DATAREDIS-123, exec does not return command results - @Ignore + @Ignore("DATAREDIS-123, exec does not return command results") public void testMulti() throws Exception { } + + @Ignore("DATAREDIS-130, sort not working") + public void testSortStore() { + } }