From df8ddb7f03950bbee088e35d9bee6451f8bad9ae Mon Sep 17 00:00:00 2001 From: M Sazzadul Hoque <7600764+sazzad16@users.noreply.github.com> Date: Thu, 22 Apr 2021 21:08:37 +0600 Subject: [PATCH 1/3] Pool extends GenericObjectPool --- .../clients/jedis/JedisClusterInfoCache.java | 2 +- .../java/redis/clients/jedis/JedisPool.java | 2 +- .../clients/jedis/JedisSentinelPool.java | 8 +- .../redis/clients/jedis/ShardedJedisPool.java | 2 +- .../java/redis/clients/jedis/util/Pool.java | 148 ++---------------- .../clients/jedis/tests/JedisPoolTest.java | 15 +- .../jedis/tests/JedisSentinelPoolTest.java | 8 +- ...ntinelPoolWithCompleteCredentialsTest.java | 6 +- .../jedis/tests/ShardedJedisPoolTest.java | 10 +- ...dJedisPoolWithCompleteCredentialsTest.java | 10 +- .../jedis/tests/benchmark/PoolBenchmark.java | 2 +- 11 files changed, 37 insertions(+), 176 deletions(-) diff --git a/src/main/java/redis/clients/jedis/JedisClusterInfoCache.java b/src/main/java/redis/clients/jedis/JedisClusterInfoCache.java index 2c20fb4ada..43e9395b28 100644 --- a/src/main/java/redis/clients/jedis/JedisClusterInfoCache.java +++ b/src/main/java/redis/clients/jedis/JedisClusterInfoCache.java @@ -288,7 +288,7 @@ public void reset() { for (JedisPool pool : nodes.values()) { try { if (pool != null) { - pool.destroy(); + pool.close(); } } catch (Exception e) { // pass diff --git a/src/main/java/redis/clients/jedis/JedisPool.java b/src/main/java/redis/clients/jedis/JedisPool.java index 26318d6a1d..b9ff6288f3 100644 --- a/src/main/java/redis/clients/jedis/JedisPool.java +++ b/src/main/java/redis/clients/jedis/JedisPool.java @@ -367,7 +367,7 @@ public void returnResource(final Jedis resource) { if (resource != null) { try { resource.resetState(); - returnResourceObject(resource); + super.returnResource(resource); } catch (Exception e) { returnBrokenResource(resource); log.warn("Resource is returned to the pool as broken", e); diff --git a/src/main/java/redis/clients/jedis/JedisSentinelPool.java b/src/main/java/redis/clients/jedis/JedisSentinelPool.java index 03617a8a83..365f59afc9 100644 --- a/src/main/java/redis/clients/jedis/JedisSentinelPool.java +++ b/src/main/java/redis/clients/jedis/JedisSentinelPool.java @@ -184,12 +184,12 @@ private static Set parseHostAndPorts(Set strings) { } @Override - public void destroy() { + public void close() { for (MasterListener m : masterListeners) { m.shutdown(); } - super.destroy(); + super.close(); } public HostAndPort getCurrentHostMaster() { @@ -203,7 +203,7 @@ private void initMaster(HostAndPort master) { factory.setHostAndPort(currentHostMaster); // although we clear the pool, we still have to check the returned object in getResource, // this call only clears idle instances, not borrowed instances - clearInternalPool(); + super.clear(); LOG.info("Created JedisSentinelPool to master at {}", master); } @@ -301,7 +301,7 @@ public void returnResource(final Jedis resource) { if (resource != null) { try { resource.resetState(); - returnResourceObject(resource); + super.returnResource(resource); } catch (Exception e) { returnBrokenResource(resource); LOG.debug("Resource is returned to the pool as broken", e); diff --git a/src/main/java/redis/clients/jedis/ShardedJedisPool.java b/src/main/java/redis/clients/jedis/ShardedJedisPool.java index 75916145bb..65d8dee93c 100644 --- a/src/main/java/redis/clients/jedis/ShardedJedisPool.java +++ b/src/main/java/redis/clients/jedis/ShardedJedisPool.java @@ -48,7 +48,7 @@ public ShardedJedis getResource() { public void returnResource(final ShardedJedis resource) { if (resource != null) { resource.resetState(); - returnResourceObject(resource); + super.returnResource(resource); } } diff --git a/src/main/java/redis/clients/jedis/util/Pool.java b/src/main/java/redis/clients/jedis/util/Pool.java index d640bcc0a7..4b85f32e9b 100644 --- a/src/main/java/redis/clients/jedis/util/Pool.java +++ b/src/main/java/redis/clients/jedis/util/Pool.java @@ -12,37 +12,15 @@ import redis.clients.jedis.exceptions.JedisException; import redis.clients.jedis.exceptions.JedisExhaustedPoolException; -public abstract class Pool implements Closeable { - - private final GenericObjectPool internalPool; +public class Pool extends GenericObjectPool implements Closeable { public Pool(final GenericObjectPoolConfig poolConfig, PooledObjectFactory factory) { - this.internalPool = new GenericObjectPool<>(factory, poolConfig); - } - - @Override - public void close() { - destroy(); - } - - public boolean isClosed() { - return this.internalPool.isClosed(); - } - - /** - * This call only clears idle instances, not borrowed instances. - */ - protected void clearInternalPool() { - try { - this.internalPool.clear(); - } catch (Exception e) { - throw new JedisException("Could not clear the pool", e); - } + super(factory, poolConfig); } public T getResource() { try { - return internalPool.borrowObject(); + return super.borrowObject(); } catch (JedisDataException jde) { throw jde; } catch (NoSuchElementException nse) { @@ -57,129 +35,25 @@ public T getResource() { } } - protected void returnResourceObject(final T resource) { + public void returnResource(final T resource) { + if (resource == null) { + return; + } try { - internalPool.returnObject(resource); + super.returnObject(resource); } catch (Exception e) { throw new JedisException("Could not return the resource to the pool", e); } } public void returnBrokenResource(final T resource) { - if (resource != null) { - returnBrokenResourceObject(resource); + if (resource == null) { + return; } - } - - public void returnResource(final T resource) { - if (resource != null) { - returnResourceObject(resource); - } - } - - public void destroy() { - closeInternalPool(); - } - - protected void returnBrokenResourceObject(final T resource) { try { - internalPool.invalidateObject(resource); + super.invalidateObject(resource); } catch (Exception e) { throw new JedisException("Could not return the broken resource to the pool", e); } } - - protected void closeInternalPool() { - try { - internalPool.close(); - } catch (Exception e) { - throw new JedisException("Could not destroy the pool", e); - } - } - - /** - * Returns the number of instances currently borrowed from this pool. - * - * @return The number of instances currently borrowed from this pool, -1 if - * the pool is inactive. - */ - public int getNumActive() { - if (poolInactive()) { - return -1; - } - - return this.internalPool.getNumActive(); - } - - /** - * Returns the number of instances currently idle in this pool. - * - * @return The number of instances currently idle in this pool, -1 if the - * pool is inactive. - */ - public int getNumIdle() { - if (poolInactive()) { - return -1; - } - - return this.internalPool.getNumIdle(); - } - - /** - * Returns an estimate of the number of threads currently blocked waiting for - * a resource from this pool. - * - * @return The number of threads waiting, -1 if the pool is inactive. - */ - public int getNumWaiters() { - if (poolInactive()) { - return -1; - } - - return this.internalPool.getNumWaiters(); - } - - /** - * Returns the mean waiting time spent by threads to obtain a resource from - * this pool. - * - * @return The mean waiting time, in milliseconds, -1 if the pool is - * inactive. - */ - public long getMeanBorrowWaitTimeMillis() { - if (poolInactive()) { - return -1; - } - - return this.internalPool.getMeanBorrowWaitTimeMillis(); - } - - /** - * Returns the maximum waiting time spent by threads to obtain a resource - * from this pool. - * - * @return The maximum waiting time, in milliseconds, -1 if the pool is - * inactive. - */ - public long getMaxBorrowWaitTimeMillis() { - if (poolInactive()) { - return -1; - } - - return this.internalPool.getMaxBorrowWaitTimeMillis(); - } - - private boolean poolInactive() { - return this.internalPool == null || this.internalPool.isClosed(); - } - - public void addObjects(int count) { - try { - for (int i = 0; i < count; i++) { - this.internalPool.addObject(); - } - } catch (Exception e) { - throw new JedisException("Error trying to add idle objects", e); - } - } } diff --git a/src/test/java/redis/clients/jedis/tests/JedisPoolTest.java b/src/test/java/redis/clients/jedis/tests/JedisPoolTest.java index 47aa14d173..f41526bac6 100644 --- a/src/test/java/redis/clients/jedis/tests/JedisPoolTest.java +++ b/src/test/java/redis/clients/jedis/tests/JedisPoolTest.java @@ -291,19 +291,6 @@ public void returnResourceShouldResetState() { assertTrue(pool.isClosed()); } - @Test - public void getNumActiveIsNegativeWhenPoolIsClosed() { - JedisPool pool = new JedisPool(new JedisPoolConfig(), hnp.getHost(), hnp.getPort(), 2000, - "foobared", 0, "my_shiny_client_name"); - - try (Jedis j = pool.getResource()) { - j.ping(); - } - - pool.close(); - assertTrue(pool.getNumActive() < 0); - } - @Test public void getNumActiveReturnsTheCorrectNumber() { try (JedisPool pool = new JedisPool(new JedisPoolConfig(), hnp.getHost(), hnp.getPort(), 2000)) { @@ -330,7 +317,7 @@ public void getNumActiveReturnsTheCorrectNumber() { } @Test - public void testAddObject() { + public void testAddObject() throws Exception { try (JedisPool pool = new JedisPool(new JedisPoolConfig(), hnp.getHost(), hnp.getPort(), 2000)) { pool.addObjects(1); assertEquals(1, pool.getNumIdle()); diff --git a/src/test/java/redis/clients/jedis/tests/JedisSentinelPoolTest.java b/src/test/java/redis/clients/jedis/tests/JedisSentinelPoolTest.java index 51504bef06..320f17c7fd 100644 --- a/src/test/java/redis/clients/jedis/tests/JedisSentinelPoolTest.java +++ b/src/test/java/redis/clients/jedis/tests/JedisSentinelPoolTest.java @@ -65,7 +65,7 @@ public void repeatedSentinelPoolInitialization() { JedisSentinelPool pool = new JedisSentinelPool(MASTER_NAME, sentinels, config, 1000, "foobared", 2); pool.getResource().close(); - pool.destroy(); + pool.close(); } } @@ -76,14 +76,14 @@ public void initializeWithNotAvailableSentinelsShouldThrowException() { wrongSentinels.add(new HostAndPort("localhost", 65431).toString()); JedisSentinelPool pool = new JedisSentinelPool(MASTER_NAME, wrongSentinels); - pool.destroy(); + pool.close(); } @Test(expected = JedisException.class) public void initializeWithNotMonitoredMasterNameShouldThrowException() { final String wrongMasterName = "wrongMasterName"; JedisSentinelPool pool = new JedisSentinelPool(wrongMasterName, sentinels); - pool.destroy(); + pool.close(); } @Test @@ -161,7 +161,7 @@ public void customClientName() { assertEquals("my_shiny_client_name", jedis.clientGetname()); } finally { jedis.close(); - pool.destroy(); + pool.close(); } assertTrue(pool.isClosed()); diff --git a/src/test/java/redis/clients/jedis/tests/JedisSentinelPoolWithCompleteCredentialsTest.java b/src/test/java/redis/clients/jedis/tests/JedisSentinelPoolWithCompleteCredentialsTest.java index c62b1d1f63..b7c07fe437 100644 --- a/src/test/java/redis/clients/jedis/tests/JedisSentinelPoolWithCompleteCredentialsTest.java +++ b/src/test/java/redis/clients/jedis/tests/JedisSentinelPoolWithCompleteCredentialsTest.java @@ -71,7 +71,7 @@ public void repeatedSentinelPoolInitialization() { JedisSentinelPool pool = new JedisSentinelPool(MASTER_NAME, sentinels, config, 1000, "default", "foobared", 2); pool.getResource().close(); - pool.destroy(); + pool.close(); } } @@ -82,14 +82,14 @@ public void initializeWithNotAvailableSentinelsShouldThrowException() { wrongSentinels.add(new HostAndPort("localhost", 65431).toString()); JedisSentinelPool pool = new JedisSentinelPool(MASTER_NAME, wrongSentinels); - pool.destroy(); + pool.close(); } @Test(expected = JedisException.class) public void initializeWithNotMonitoredMasterNameShouldThrowException() { final String wrongMasterName = "wrongMasterName"; JedisSentinelPool pool = new JedisSentinelPool(wrongMasterName, sentinels); - pool.destroy(); + pool.close(); } @Test diff --git a/src/test/java/redis/clients/jedis/tests/ShardedJedisPoolTest.java b/src/test/java/redis/clients/jedis/tests/ShardedJedisPoolTest.java index acf5d40161..ae31addb8c 100644 --- a/src/test/java/redis/clients/jedis/tests/ShardedJedisPoolTest.java +++ b/src/test/java/redis/clients/jedis/tests/ShardedJedisPoolTest.java @@ -49,7 +49,7 @@ public void checkConnections() { jedis.set("foo", "bar"); assertEquals("bar", jedis.get("foo")); jedis.close(); - pool.destroy(); + pool.close(); } @Test @@ -72,7 +72,7 @@ public void checkConnectionWithDefaultPort() { jedis.set("foo", "bar"); assertEquals("bar", jedis.get("foo")); jedis.close(); - pool.destroy(); + pool.close(); } @Test @@ -86,7 +86,7 @@ public void checkJedisIsReusedWhenReturned() { jedis = pool.getResource(); jedis.incr("foo"); jedis.close(); - pool.destroy(); + pool.close(); } @Test @@ -100,7 +100,7 @@ public void checkPoolRepairedWhenJedisIsBroken() { jedis = pool.getResource(); jedis.incr("foo"); jedis.close(); - pool.destroy(); + pool.close(); } @Test(expected = JedisExhaustedPoolException.class) @@ -138,7 +138,7 @@ public void checkFailedJedisServer() { ShardedJedis jedis = pool.getResource(); jedis.incr("foo"); jedis.close(); - pool.destroy(); + pool.close(); } @Test diff --git a/src/test/java/redis/clients/jedis/tests/ShardedJedisPoolWithCompleteCredentialsTest.java b/src/test/java/redis/clients/jedis/tests/ShardedJedisPoolWithCompleteCredentialsTest.java index aaf38b499d..854365e207 100644 --- a/src/test/java/redis/clients/jedis/tests/ShardedJedisPoolWithCompleteCredentialsTest.java +++ b/src/test/java/redis/clients/jedis/tests/ShardedJedisPoolWithCompleteCredentialsTest.java @@ -58,7 +58,7 @@ public void checkConnections() { jedis.set("foo", "bar"); assertEquals("bar", jedis.get("foo")); jedis.close(); - pool.destroy(); + pool.close(); } @Test @@ -81,7 +81,7 @@ public void checkConnectionWithDefaultPort() { jedis.set("foo", "bar"); assertEquals("bar", jedis.get("foo")); jedis.close(); - pool.destroy(); + pool.close(); } @Test @@ -95,7 +95,7 @@ public void checkJedisIsReusedWhenReturned() { jedis = pool.getResource(); jedis.incr("foo"); jedis.close(); - pool.destroy(); + pool.close(); } @Test @@ -109,7 +109,7 @@ public void checkPoolRepairedWhenJedisIsBroken() { jedis = pool.getResource(); jedis.incr("foo"); jedis.close(); - pool.destroy(); + pool.close(); } @Test(expected = JedisExhaustedPoolException.class) @@ -147,7 +147,7 @@ public void checkFailedJedisServer() { ShardedJedis jedis = pool.getResource(); jedis.incr("foo"); jedis.close(); - pool.destroy(); + pool.close(); } @Test diff --git a/src/test/java/redis/clients/jedis/tests/benchmark/PoolBenchmark.java b/src/test/java/redis/clients/jedis/tests/benchmark/PoolBenchmark.java index 948a7fab72..b8c0bfbee4 100644 --- a/src/test/java/redis/clients/jedis/tests/benchmark/PoolBenchmark.java +++ b/src/test/java/redis/clients/jedis/tests/benchmark/PoolBenchmark.java @@ -58,7 +58,7 @@ public void run() { for (Thread t : tds) t.join(); - pool.destroy(); + pool.close(); } } \ No newline at end of file From 440c522d7157255de35490ab1ad2b81f8601f374 Mon Sep 17 00:00:00 2001 From: M Sazzadul Hoque <7600764+sazzad16@users.noreply.github.com> Date: Fri, 14 May 2021 18:18:07 +0600 Subject: [PATCH 2/3] bring back 'destroy' --- .../clients/jedis/JedisClusterInfoCache.java | 2 +- .../clients/jedis/JedisSentinelPool.java | 4 ++-- .../java/redis/clients/jedis/util/Pool.java | 24 +++++++++++++++++++ .../clients/jedis/tests/JedisPoolTest.java | 2 +- .../jedis/tests/JedisSentinelPoolTest.java | 8 +++---- ...ntinelPoolWithCompleteCredentialsTest.java | 6 ++--- .../jedis/tests/ShardedJedisPoolTest.java | 10 ++++---- ...dJedisPoolWithCompleteCredentialsTest.java | 10 ++++---- .../jedis/tests/benchmark/PoolBenchmark.java | 2 +- 9 files changed, 46 insertions(+), 22 deletions(-) diff --git a/src/main/java/redis/clients/jedis/JedisClusterInfoCache.java b/src/main/java/redis/clients/jedis/JedisClusterInfoCache.java index 43e9395b28..2c20fb4ada 100644 --- a/src/main/java/redis/clients/jedis/JedisClusterInfoCache.java +++ b/src/main/java/redis/clients/jedis/JedisClusterInfoCache.java @@ -288,7 +288,7 @@ public void reset() { for (JedisPool pool : nodes.values()) { try { if (pool != null) { - pool.close(); + pool.destroy(); } } catch (Exception e) { // pass diff --git a/src/main/java/redis/clients/jedis/JedisSentinelPool.java b/src/main/java/redis/clients/jedis/JedisSentinelPool.java index 365f59afc9..69f7f3bb84 100644 --- a/src/main/java/redis/clients/jedis/JedisSentinelPool.java +++ b/src/main/java/redis/clients/jedis/JedisSentinelPool.java @@ -184,12 +184,12 @@ private static Set parseHostAndPorts(Set strings) { } @Override - public void close() { + public void destroy() { for (MasterListener m : masterListeners) { m.shutdown(); } - super.close(); + super.destroy(); } public HostAndPort getCurrentHostMaster() { diff --git a/src/main/java/redis/clients/jedis/util/Pool.java b/src/main/java/redis/clients/jedis/util/Pool.java index 4b85f32e9b..597bd47a7b 100644 --- a/src/main/java/redis/clients/jedis/util/Pool.java +++ b/src/main/java/redis/clients/jedis/util/Pool.java @@ -18,6 +18,11 @@ public Pool(final GenericObjectPoolConfig poolConfig, PooledObjectFactory super(factory, poolConfig); } + @Override + public void close() { + destroy(); + } + public T getResource() { try { return super.borrowObject(); @@ -56,4 +61,23 @@ public void returnBrokenResource(final T resource) { throw new JedisException("Could not return the broken resource to the pool", e); } } + + public void destroy() { + try { + super.close(); + } catch (Exception e) { + throw new JedisException("Could not destroy the pool", e); + } + } + + @Override + public void addObjects(int count) { + try { + for (int i = 0; i < count; i++) { + addObject(); + } + } catch (Exception e) { + throw new JedisException("Error trying to add idle objects", e); + } + } } diff --git a/src/test/java/redis/clients/jedis/tests/JedisPoolTest.java b/src/test/java/redis/clients/jedis/tests/JedisPoolTest.java index f41526bac6..9cf1fe0ba7 100644 --- a/src/test/java/redis/clients/jedis/tests/JedisPoolTest.java +++ b/src/test/java/redis/clients/jedis/tests/JedisPoolTest.java @@ -317,7 +317,7 @@ public void getNumActiveReturnsTheCorrectNumber() { } @Test - public void testAddObject() throws Exception { + public void testAddObject() { try (JedisPool pool = new JedisPool(new JedisPoolConfig(), hnp.getHost(), hnp.getPort(), 2000)) { pool.addObjects(1); assertEquals(1, pool.getNumIdle()); diff --git a/src/test/java/redis/clients/jedis/tests/JedisSentinelPoolTest.java b/src/test/java/redis/clients/jedis/tests/JedisSentinelPoolTest.java index 320f17c7fd..51504bef06 100644 --- a/src/test/java/redis/clients/jedis/tests/JedisSentinelPoolTest.java +++ b/src/test/java/redis/clients/jedis/tests/JedisSentinelPoolTest.java @@ -65,7 +65,7 @@ public void repeatedSentinelPoolInitialization() { JedisSentinelPool pool = new JedisSentinelPool(MASTER_NAME, sentinels, config, 1000, "foobared", 2); pool.getResource().close(); - pool.close(); + pool.destroy(); } } @@ -76,14 +76,14 @@ public void initializeWithNotAvailableSentinelsShouldThrowException() { wrongSentinels.add(new HostAndPort("localhost", 65431).toString()); JedisSentinelPool pool = new JedisSentinelPool(MASTER_NAME, wrongSentinels); - pool.close(); + pool.destroy(); } @Test(expected = JedisException.class) public void initializeWithNotMonitoredMasterNameShouldThrowException() { final String wrongMasterName = "wrongMasterName"; JedisSentinelPool pool = new JedisSentinelPool(wrongMasterName, sentinels); - pool.close(); + pool.destroy(); } @Test @@ -161,7 +161,7 @@ public void customClientName() { assertEquals("my_shiny_client_name", jedis.clientGetname()); } finally { jedis.close(); - pool.close(); + pool.destroy(); } assertTrue(pool.isClosed()); diff --git a/src/test/java/redis/clients/jedis/tests/JedisSentinelPoolWithCompleteCredentialsTest.java b/src/test/java/redis/clients/jedis/tests/JedisSentinelPoolWithCompleteCredentialsTest.java index b7c07fe437..c62b1d1f63 100644 --- a/src/test/java/redis/clients/jedis/tests/JedisSentinelPoolWithCompleteCredentialsTest.java +++ b/src/test/java/redis/clients/jedis/tests/JedisSentinelPoolWithCompleteCredentialsTest.java @@ -71,7 +71,7 @@ public void repeatedSentinelPoolInitialization() { JedisSentinelPool pool = new JedisSentinelPool(MASTER_NAME, sentinels, config, 1000, "default", "foobared", 2); pool.getResource().close(); - pool.close(); + pool.destroy(); } } @@ -82,14 +82,14 @@ public void initializeWithNotAvailableSentinelsShouldThrowException() { wrongSentinels.add(new HostAndPort("localhost", 65431).toString()); JedisSentinelPool pool = new JedisSentinelPool(MASTER_NAME, wrongSentinels); - pool.close(); + pool.destroy(); } @Test(expected = JedisException.class) public void initializeWithNotMonitoredMasterNameShouldThrowException() { final String wrongMasterName = "wrongMasterName"; JedisSentinelPool pool = new JedisSentinelPool(wrongMasterName, sentinels); - pool.close(); + pool.destroy(); } @Test diff --git a/src/test/java/redis/clients/jedis/tests/ShardedJedisPoolTest.java b/src/test/java/redis/clients/jedis/tests/ShardedJedisPoolTest.java index ae31addb8c..acf5d40161 100644 --- a/src/test/java/redis/clients/jedis/tests/ShardedJedisPoolTest.java +++ b/src/test/java/redis/clients/jedis/tests/ShardedJedisPoolTest.java @@ -49,7 +49,7 @@ public void checkConnections() { jedis.set("foo", "bar"); assertEquals("bar", jedis.get("foo")); jedis.close(); - pool.close(); + pool.destroy(); } @Test @@ -72,7 +72,7 @@ public void checkConnectionWithDefaultPort() { jedis.set("foo", "bar"); assertEquals("bar", jedis.get("foo")); jedis.close(); - pool.close(); + pool.destroy(); } @Test @@ -86,7 +86,7 @@ public void checkJedisIsReusedWhenReturned() { jedis = pool.getResource(); jedis.incr("foo"); jedis.close(); - pool.close(); + pool.destroy(); } @Test @@ -100,7 +100,7 @@ public void checkPoolRepairedWhenJedisIsBroken() { jedis = pool.getResource(); jedis.incr("foo"); jedis.close(); - pool.close(); + pool.destroy(); } @Test(expected = JedisExhaustedPoolException.class) @@ -138,7 +138,7 @@ public void checkFailedJedisServer() { ShardedJedis jedis = pool.getResource(); jedis.incr("foo"); jedis.close(); - pool.close(); + pool.destroy(); } @Test diff --git a/src/test/java/redis/clients/jedis/tests/ShardedJedisPoolWithCompleteCredentialsTest.java b/src/test/java/redis/clients/jedis/tests/ShardedJedisPoolWithCompleteCredentialsTest.java index 854365e207..aaf38b499d 100644 --- a/src/test/java/redis/clients/jedis/tests/ShardedJedisPoolWithCompleteCredentialsTest.java +++ b/src/test/java/redis/clients/jedis/tests/ShardedJedisPoolWithCompleteCredentialsTest.java @@ -58,7 +58,7 @@ public void checkConnections() { jedis.set("foo", "bar"); assertEquals("bar", jedis.get("foo")); jedis.close(); - pool.close(); + pool.destroy(); } @Test @@ -81,7 +81,7 @@ public void checkConnectionWithDefaultPort() { jedis.set("foo", "bar"); assertEquals("bar", jedis.get("foo")); jedis.close(); - pool.close(); + pool.destroy(); } @Test @@ -95,7 +95,7 @@ public void checkJedisIsReusedWhenReturned() { jedis = pool.getResource(); jedis.incr("foo"); jedis.close(); - pool.close(); + pool.destroy(); } @Test @@ -109,7 +109,7 @@ public void checkPoolRepairedWhenJedisIsBroken() { jedis = pool.getResource(); jedis.incr("foo"); jedis.close(); - pool.close(); + pool.destroy(); } @Test(expected = JedisExhaustedPoolException.class) @@ -147,7 +147,7 @@ public void checkFailedJedisServer() { ShardedJedis jedis = pool.getResource(); jedis.incr("foo"); jedis.close(); - pool.close(); + pool.destroy(); } @Test diff --git a/src/test/java/redis/clients/jedis/tests/benchmark/PoolBenchmark.java b/src/test/java/redis/clients/jedis/tests/benchmark/PoolBenchmark.java index b8c0bfbee4..948a7fab72 100644 --- a/src/test/java/redis/clients/jedis/tests/benchmark/PoolBenchmark.java +++ b/src/test/java/redis/clients/jedis/tests/benchmark/PoolBenchmark.java @@ -58,7 +58,7 @@ public void run() { for (Thread t : tds) t.join(); - pool.close(); + pool.destroy(); } } \ No newline at end of file From 390e393fba75c77e6116d6a46498d79018ae1452 Mon Sep 17 00:00:00 2001 From: M Sazzadul Hoque <7600764+sazzad16@users.noreply.github.com> Date: Sun, 27 Jun 2021 18:51:37 +0600 Subject: [PATCH 3/3] bring back removed test --- .../redis/clients/jedis/tests/JedisPoolTest.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/test/java/redis/clients/jedis/tests/JedisPoolTest.java b/src/test/java/redis/clients/jedis/tests/JedisPoolTest.java index 9cf1fe0ba7..f2511e21e0 100644 --- a/src/test/java/redis/clients/jedis/tests/JedisPoolTest.java +++ b/src/test/java/redis/clients/jedis/tests/JedisPoolTest.java @@ -291,6 +291,19 @@ public void returnResourceShouldResetState() { assertTrue(pool.isClosed()); } + @Test + public void getNumActiveWhenPoolIsClosed() { + JedisPool pool = new JedisPool(new JedisPoolConfig(), hnp.getHost(), hnp.getPort(), 2000, + "foobared", 0, "my_shiny_client_name"); + + try (Jedis j = pool.getResource()) { + j.ping(); + } + + pool.close(); + assertEquals(0, pool.getNumActive()); + } + @Test public void getNumActiveReturnsTheCorrectNumber() { try (JedisPool pool = new JedisPool(new JedisPoolConfig(), hnp.getHost(), hnp.getPort(), 2000)) {