JedisPool accepts BinaryJedis as a resource for return. Issue #171

Conflicts:

	src/main/java/redis/clients/util/Pool.java
This commit is contained in:
Ivo Ramirez
2011-12-21 06:56:56 +01:00
committed by ivowiblo
parent be163acd52
commit 53f829fb10
3 changed files with 30 additions and 4 deletions

View File

@@ -38,6 +38,15 @@ public class JedisPool extends Pool<Jedis> {
super(poolConfig, new JedisFactory(host, port, timeout, password, database)); 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. * PoolableObjectFactory custom impl.
*/ */
@@ -101,6 +110,5 @@ public class JedisPool extends Pool<Jedis> {
return false; return false;
} }
} }
} }
} }

View File

@@ -23,8 +23,8 @@ public abstract class Pool<T> {
"Could not get a resource from the pool", e); "Could not get a resource from the pool", e);
} }
} }
public void returnResource(final T resource) { public void returnResourceObject(final Object resource) {
try { try {
internalPool.returnObject(resource); internalPool.returnObject(resource);
} catch (Exception e) { } catch (Exception e) {
@@ -32,8 +32,16 @@ public abstract class Pool<T> {
"Could not return the resource to the pool", e); "Could not return the resource to the pool", e);
} }
} }
public void returnBrokenResource(final T resource) { public void returnBrokenResource(final T resource) {
returnBrokenResourceObject(resource);
}
public void returnResource(final T resource) {
returnResourceObject(resource);
}
protected void returnBrokenResourceObject(final Object resource) {
try { try {
internalPool.invalidateObject(resource); internalPool.invalidateObject(resource);
} catch (Exception e) { } catch (Exception e) {

View File

@@ -5,6 +5,7 @@ import org.apache.commons.pool.impl.GenericObjectPool.Config;
import org.junit.Assert; import org.junit.Assert;
import org.junit.Test; import org.junit.Test;
import redis.clients.jedis.BinaryJedis;
import redis.clients.jedis.Jedis; import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig; import redis.clients.jedis.JedisPoolConfig;
@@ -113,4 +114,13 @@ public class JedisPoolTest extends Assert {
pool1.returnResource(jedis0); pool1.returnResource(jedis0);
pool1.destroy(); 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();
}
} }