diff --git a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConnection.java b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConnection.java index 95d8859be..c97ba64eb 100644 --- a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConnection.java +++ b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConnection.java @@ -826,13 +826,15 @@ public class LettuceConnection implements RedisConnection { } public void watch(byte[]... keys) { + if(isQueueing()) { + throw new UnsupportedOperationException(); + } try { if (isPipelined()) { pipeline(new LettuceStatusResult(getAsyncDedicatedConnection().watch(keys))); return; - } else { - getDedicatedConnection().watch(keys); } + getDedicatedConnection().watch(keys); } catch (Exception ex) { throw convertLettuceAccessException(ex); } diff --git a/src/test/java/org/springframework/data/redis/connection/AbstractConnectionTransactionIntegrationTests.java b/src/test/java/org/springframework/data/redis/connection/AbstractConnectionTransactionIntegrationTests.java index ab6f3a2f7..580ec662a 100644 --- a/src/test/java/org/springframework/data/redis/connection/AbstractConnectionTransactionIntegrationTests.java +++ b/src/test/java/org/springframework/data/redis/connection/AbstractConnectionTransactionIntegrationTests.java @@ -109,6 +109,11 @@ abstract public class AbstractConnectionTransactionIntegrationTests extends public void testHashNullValue() throws Exception { } + @Test(expected=UnsupportedOperationException.class) + public void testWatchWhileInTx() { + connection.watch("foo".getBytes()); + } + // Type conversion overrides @Test