From 6f92f5fc9c87ef268027a09ac3a975f8e6639622 Mon Sep 17 00:00:00 2001 From: Jonathan Leibiusky Date: Fri, 10 Dec 2010 17:36:44 -0300 Subject: [PATCH] pool doesn't throw Exception anymore but JedisException --- src/main/java/redis/clients/util/Pool.java | 37 +++++++++++++++---- .../clients/jedis/tests/JedisPoolTest.java | 7 ++-- .../jedis/tests/ShardedJedisPoolTest.java | 14 +++---- 3 files changed, 39 insertions(+), 19 deletions(-) diff --git a/src/main/java/redis/clients/util/Pool.java b/src/main/java/redis/clients/util/Pool.java index 3dc2020..72bec5b 100644 --- a/src/main/java/redis/clients/util/Pool.java +++ b/src/main/java/redis/clients/util/Pool.java @@ -3,6 +3,8 @@ package redis.clients.util; import org.apache.commons.pool.PoolableObjectFactory; import org.apache.commons.pool.impl.GenericObjectPool; +import redis.clients.jedis.JedisException; + public abstract class Pool { private final GenericObjectPool internalPool; @@ -12,19 +14,38 @@ public abstract class Pool { } @SuppressWarnings("unchecked") - public T getResource() throws Exception { - return (T) internalPool.borrowObject(); + public T getResource() { + try { + return (T) internalPool.borrowObject(); + } catch (Exception e) { + throw new JedisException("Could not get a resource from the pool", + e); + } } - public void returnResource(final T resource) throws Exception { - internalPool.returnObject(resource); + public void returnResource(final T resource) { + try { + internalPool.returnObject(resource); + } catch (Exception e) { + throw new JedisException( + "Could not return the resource to the pool", e); + } } - public void returnBrokenResource(final T resource) throws Exception { - internalPool.invalidateObject(resource); + public void returnBrokenResource(final T resource) { + try { + internalPool.invalidateObject(resource); + } catch (Exception e) { + throw new JedisException( + "Could not return the resource to the pool", e); + } } - public void destroy() throws Exception { - internalPool.close(); + public void destroy() { + try { + internalPool.close(); + } catch (Exception e) { + throw new JedisException("Could not destroy the pool", e); + } } } \ No newline at end of file diff --git a/src/test/java/redis/clients/jedis/tests/JedisPoolTest.java b/src/test/java/redis/clients/jedis/tests/JedisPoolTest.java index 5af78c4..f4ae3d7 100644 --- a/src/test/java/redis/clients/jedis/tests/JedisPoolTest.java +++ b/src/test/java/redis/clients/jedis/tests/JedisPoolTest.java @@ -1,13 +1,12 @@ package redis.clients.jedis.tests; -import java.util.NoSuchElementException; - import org.apache.commons.pool.impl.GenericObjectPool; import org.apache.commons.pool.impl.GenericObjectPool.Config; import org.junit.Assert; import org.junit.Test; import redis.clients.jedis.Jedis; +import redis.clients.jedis.JedisException; import redis.clients.jedis.JedisPool; import redis.clients.jedis.tests.HostAndPortUtil.HostAndPort; @@ -66,8 +65,8 @@ public class JedisPoolTest extends Assert { pool.destroy(); } - @Test(expected = NoSuchElementException.class) - public void checkPoolOverflow() throws Exception { + @Test(expected = JedisException.class) + public void checkPoolOverflow() { Config config = new Config(); config.maxActive = 1; config.whenExhaustedAction = GenericObjectPool.WHEN_EXHAUSTED_FAIL; diff --git a/src/test/java/redis/clients/jedis/tests/ShardedJedisPoolTest.java b/src/test/java/redis/clients/jedis/tests/ShardedJedisPoolTest.java index da04abe..b874a07 100644 --- a/src/test/java/redis/clients/jedis/tests/ShardedJedisPoolTest.java +++ b/src/test/java/redis/clients/jedis/tests/ShardedJedisPoolTest.java @@ -4,7 +4,6 @@ import java.io.IOException; import java.net.UnknownHostException; import java.util.ArrayList; import java.util.List; -import java.util.NoSuchElementException; import org.apache.commons.pool.impl.GenericObjectPool; import org.apache.commons.pool.impl.GenericObjectPool.Config; @@ -13,6 +12,7 @@ import org.junit.Before; import org.junit.Test; import redis.clients.jedis.Jedis; +import redis.clients.jedis.JedisException; import redis.clients.jedis.JedisShardInfo; import redis.clients.jedis.ShardedJedis; import redis.clients.jedis.ShardedJedisPool; @@ -44,7 +44,7 @@ public class ShardedJedisPoolTest extends Assert { } @Test - public void checkConnections() throws Exception { + public void checkConnections() { ShardedJedisPool pool = new ShardedJedisPool(new Config(), shards); ShardedJedis jedis = pool.getResource(); jedis.set("foo", "bar"); @@ -54,7 +54,7 @@ public class ShardedJedisPoolTest extends Assert { } @Test - public void checkConnectionWithDefaultPort() throws Exception { + public void checkConnectionWithDefaultPort() { ShardedJedisPool pool = new ShardedJedisPool(new Config(), shards); ShardedJedis jedis = pool.getResource(); jedis.set("foo", "bar"); @@ -64,7 +64,7 @@ public class ShardedJedisPoolTest extends Assert { } @Test - public void checkJedisIsReusedWhenReturned() throws Exception { + public void checkJedisIsReusedWhenReturned() { ShardedJedisPool pool = new ShardedJedisPool(new Config(), shards); ShardedJedis jedis = pool.getResource(); jedis.set("foo", "0"); @@ -89,8 +89,8 @@ public class ShardedJedisPoolTest extends Assert { pool.destroy(); } - @Test(expected = NoSuchElementException.class) - public void checkPoolOverflow() throws Exception { + @Test(expected = JedisException.class) + public void checkPoolOverflow() { Config config = new Config(); config.maxActive = 1; config.whenExhaustedAction = GenericObjectPool.WHEN_EXHAUSTED_FAIL; @@ -105,7 +105,7 @@ public class ShardedJedisPoolTest extends Assert { } @Test - public void shouldNotShareInstances() throws Exception { + public void shouldNotShareInstances() { Config config = new Config(); config.maxActive = 2; config.whenExhaustedAction = GenericObjectPool.WHEN_EXHAUSTED_FAIL;