diff --git a/src/main/java/org/springframework/data/redis/connection/jedis/JedisConnection.java b/src/main/java/org/springframework/data/redis/connection/jedis/JedisConnection.java index 282d45bd8..0d342efe8 100644 --- a/src/main/java/org/springframework/data/redis/connection/jedis/JedisConnection.java +++ b/src/main/java/org/springframework/data/redis/connection/jedis/JedisConnection.java @@ -588,7 +588,7 @@ public class JedisConnection implements RedisConnection { pipeline.discard(); return; } - client.discard(); + transaction.discard(); } catch (Exception ex) { throw convertJedisAccessException(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 8626ce176..fb32a12c4 100644 --- a/src/test/java/org/springframework/data/redis/connection/AbstractConnectionIntegrationTests.java +++ b/src/test/java/org/springframework/data/redis/connection/AbstractConnectionIntegrationTests.java @@ -365,7 +365,7 @@ public abstract class AbstractConnectionIntegrationTests { } @Test - public void testMulti() throws Exception { + public void testMultiExec() throws Exception { byte[] key = "key".getBytes(); byte[] value = "value".getBytes(); @@ -378,6 +378,18 @@ public abstract class AbstractConnectionIntegrationTests { assertEquals(new String(value), new String((byte[])results.get(1))); } + @Test + public void testMultiDiscard() throws Exception { + connection.set("testitnow", "willdo"); + connection.multi(); + connection.set("testitnow", "notok"); + connection.discard(); + assertEquals("willdo", connection.get("testitnow")); + // Ensure we can run a new tx after discarding previous one + testMultiExec(); + } + + @Test public void testBlPopTimeout() { assertNull(connection.bLPop(1, "lclist")); diff --git a/src/test/java/org/springframework/data/redis/connection/jredis/JRedisConnectionIntegrationTests.java b/src/test/java/org/springframework/data/redis/connection/jredis/JRedisConnectionIntegrationTests.java index 7cd8d7746..059c3fa70 100644 --- a/src/test/java/org/springframework/data/redis/connection/jredis/JRedisConnectionIntegrationTests.java +++ b/src/test/java/org/springframework/data/redis/connection/jredis/JRedisConnectionIntegrationTests.java @@ -80,8 +80,14 @@ public class JRedisConnectionIntegrationTests extends AbstractConnectionIntegrat public void testBitSet() throws Exception { } - @Ignore - public void testMulti() throws Exception { + @Test(expected = UnsupportedOperationException.class) + public void testMultiExec() throws Exception { + super.testMultiExec(); + } + + @Test(expected = UnsupportedOperationException.class) + public void testMultiDiscard() throws Exception { + super.testMultiDiscard(); } @Ignore diff --git a/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionIntegrationTests.java b/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionIntegrationTests.java index 679ecbc94..421f5d33a 100644 --- a/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionIntegrationTests.java +++ b/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionIntegrationTests.java @@ -45,7 +45,7 @@ public class LettuceConnectionIntegrationTests extends AbstractConnectionIntegra } @Test - public void testMulti() throws Exception { + public void testMultiExec() throws Exception { byte[] key = "key".getBytes(); byte[] value = "value".getBytes(); 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 ef21968d6..e19b93696 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 @@ -49,7 +49,7 @@ public class RjcConnectionIntegrationTests extends AbstractConnectionIntegration } @Test - public void testMulti() throws Exception { + public void testMultiExec() throws Exception { byte[] key = "key".getBytes(); byte[] value = "value".getBytes(); 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 6fe81f602..18e516567 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 @@ -45,7 +45,11 @@ public class SrpConnectionIntegrationTests extends AbstractConnectionIntegration } @Ignore("DATAREDIS-123, exec does not return command results") - public void testMulti() throws Exception { + public void testMultiExec() throws Exception { + } + + @Ignore("DATAREDIS-123, exec does not return command results") + public void testMultiDiscard() { } @Ignore("DATAREDIS-130, sort not working")