From 53f829fb1087ea33c0bd044aeaf70eedad233d45 Mon Sep 17 00:00:00 2001 From: Ivo Ramirez Date: Wed, 21 Dec 2011 06:56:56 +0100 Subject: [PATCH] JedisPool accepts BinaryJedis as a resource for return. Issue #171 Conflicts: src/main/java/redis/clients/util/Pool.java --- src/main/java/redis/clients/jedis/JedisPool.java | 10 +++++++++- src/main/java/redis/clients/util/Pool.java | 14 +++++++++++--- .../redis/clients/jedis/tests/JedisPoolTest.java | 10 ++++++++++ 3 files changed, 30 insertions(+), 4 deletions(-) diff --git a/src/main/java/redis/clients/jedis/JedisPool.java b/src/main/java/redis/clients/jedis/JedisPool.java index e513570..0d7c089 100644 --- a/src/main/java/redis/clients/jedis/JedisPool.java +++ b/src/main/java/redis/clients/jedis/JedisPool.java @@ -38,6 +38,15 @@ public class JedisPool extends Pool { super(poolConfig, new JedisFactory(host, port, timeout, password, database)); } + + public void returnBrokenResource(final BinaryJedis resource) { + returnBrokenResourceObject(resource); + } + + public void returnResource(final BinaryJedis resource) { + returnResourceObject(resource); + } + /** * PoolableObjectFactory custom impl. */ @@ -101,6 +110,5 @@ public class JedisPool extends Pool { return false; } } - } } diff --git a/src/main/java/redis/clients/util/Pool.java b/src/main/java/redis/clients/util/Pool.java index 3f74370..7f5e533 100644 --- a/src/main/java/redis/clients/util/Pool.java +++ b/src/main/java/redis/clients/util/Pool.java @@ -23,8 +23,8 @@ public abstract class Pool { "Could not get a resource from the pool", e); } } - - public void returnResource(final T resource) { + + public void returnResourceObject(final Object resource) { try { internalPool.returnObject(resource); } catch (Exception e) { @@ -32,8 +32,16 @@ public abstract class Pool { "Could not return the resource to the pool", e); } } - + public void returnBrokenResource(final T resource) { + returnBrokenResourceObject(resource); + } + + public void returnResource(final T resource) { + returnResourceObject(resource); + } + + protected void returnBrokenResourceObject(final Object resource) { try { internalPool.invalidateObject(resource); } catch (Exception e) { diff --git a/src/test/java/redis/clients/jedis/tests/JedisPoolTest.java b/src/test/java/redis/clients/jedis/tests/JedisPoolTest.java index 5fd76fe..b0a489e 100644 --- a/src/test/java/redis/clients/jedis/tests/JedisPoolTest.java +++ b/src/test/java/redis/clients/jedis/tests/JedisPoolTest.java @@ -5,6 +5,7 @@ import org.apache.commons.pool.impl.GenericObjectPool.Config; import org.junit.Assert; import org.junit.Test; +import redis.clients.jedis.BinaryJedis; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; @@ -113,4 +114,13 @@ public class JedisPoolTest extends Assert { pool1.returnResource(jedis0); pool1.destroy(); } + + @Test + public void returnBinary() { + JedisPool pool = new JedisPool(new JedisPoolConfig(), hnp.host, + hnp.port, 2000); + BinaryJedis jedis = pool.getResource(); + pool.returnResource(jedis); + pool.destroy(); + } } \ No newline at end of file