From 86173faa81b5267ba66f8d72ea1f56b2b59f6863 Mon Sep 17 00:00:00 2001 From: Jennifer Hickey Date: Mon, 22 Jul 2013 12:32:37 -0700 Subject: [PATCH] Throw UnsupportedOpException on watch in tx in Lettuce DATAREDIS-225 --- .../data/redis/connection/lettuce/LettuceConnection.java | 6 ++++-- .../AbstractConnectionTransactionIntegrationTests.java | 5 +++++ 2 files changed, 9 insertions(+), 2 deletions(-) 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