From ff50c17238cdc3a0c824b00c2a60899ff0438205 Mon Sep 17 00:00:00 2001 From: Jonathan Leibiusky Date: Fri, 25 Mar 2011 11:37:49 -0300 Subject: [PATCH] fix issue 108, brpoplpush set infinite timeout before waiting for a reply from the server --- src/main/java/redis/clients/jedis/BinaryJedis.java | 5 ++++- src/main/java/redis/clients/jedis/Jedis.java | 5 ++++- .../redis/clients/jedis/tests/commands/ListCommandsTest.java | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/redis/clients/jedis/BinaryJedis.java b/src/main/java/redis/clients/jedis/BinaryJedis.java index 4401042..501f211 100644 --- a/src/main/java/redis/clients/jedis/BinaryJedis.java +++ b/src/main/java/redis/clients/jedis/BinaryJedis.java @@ -2898,7 +2898,10 @@ public class BinaryJedis implements BinaryJedisCommands { */ public byte[] brpoplpush(byte[] source, byte[] destination, int timeout) { client.brpoplpush(source, destination, timeout); - return client.getBinaryBulkReply(); + client.setTimeoutInfinite(); + byte[] reply = client.getBinaryBulkReply(); + client.rollbackTimeout(); + return reply; } /** diff --git a/src/main/java/redis/clients/jedis/Jedis.java b/src/main/java/redis/clients/jedis/Jedis.java index c311857..c83bb95 100644 --- a/src/main/java/redis/clients/jedis/Jedis.java +++ b/src/main/java/redis/clients/jedis/Jedis.java @@ -2570,7 +2570,10 @@ public class Jedis extends BinaryJedis implements JedisCommands { */ public String brpoplpush(String source, String destination, int timeout) { client.brpoplpush(source, destination, timeout); - return client.getBulkReply(); + client.setTimeoutInfinite(); + String reply = client.getBulkReply(); + client.rollbackTimeout(); + return reply; } /** diff --git a/src/test/java/redis/clients/jedis/tests/commands/ListCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/ListCommandsTest.java index 8b082c3..a2e5a4b 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/ListCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/ListCommandsTest.java @@ -585,7 +585,7 @@ public class ListCommandsTest extends JedisCommandTestBase { (new Thread(new Runnable() { public void run() { try { - Thread.sleep(100); + Thread.sleep(2000); Jedis j = createJedis(); j.lpush("foo", "a"); } catch (InterruptedException e) {