This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-pool.git
commit 35b582ce6d221176dc7c414c79fb73b76a528a72 Author: Gary Gregory <garydgreg...@gmail.com> AuthorDate: Mon Feb 15 11:28:47 2021 -0500 Bullet-proof test tear-down against NPE when an actual test fails. --- .../pool2/impl/TestAbandonedObjectPool.java | 3 +- .../pool2/impl/TestGenericKeyedObjectPool.java | 101 +++++++++++++++------ .../commons/pool2/impl/TestGenericObjectPool.java | 5 +- 3 files changed, 80 insertions(+), 29 deletions(-) diff --git a/src/test/java/org/apache/commons/pool2/impl/TestAbandonedObjectPool.java b/src/test/java/org/apache/commons/pool2/impl/TestAbandonedObjectPool.java index 39886aa..030f4e8 100644 --- a/src/test/java/org/apache/commons/pool2/impl/TestAbandonedObjectPool.java +++ b/src/test/java/org/apache/commons/pool2/impl/TestAbandonedObjectPool.java @@ -71,7 +71,8 @@ public class TestAbandonedObjectPool { @AfterEach public void tearDown() throws Exception { - final String poolName = pool.getJmxName().toString(); + final ObjectName jmxName = pool.getJmxName(); + final String poolName = Objects.toString(jmxName, null); pool.clear(); pool.close(); pool = null; diff --git a/src/test/java/org/apache/commons/pool2/impl/TestGenericKeyedObjectPool.java b/src/test/java/org/apache/commons/pool2/impl/TestGenericKeyedObjectPool.java index c6141f7..ed8faf2 100644 --- a/src/test/java/org/apache/commons/pool2/impl/TestGenericKeyedObjectPool.java +++ b/src/test/java/org/apache/commons/pool2/impl/TestGenericKeyedObjectPool.java @@ -24,6 +24,7 @@ import java.lang.management.ManagementFactory; import java.util.ArrayList; import java.util.HashSet; import java.util.NoSuchElementException; +import java.util.Objects; import java.util.Random; import java.util.Set; import java.util.Timer; @@ -111,7 +112,8 @@ public class TestGenericKeyedObjectPool extends TestKeyedObjectPool { @AfterEach public void tearDown() throws Exception { super.tearDown(); - final String poolName = gkoPool.getJmxName().toString(); + final ObjectName jmxName = gkoPool.getJmxName(); + final String poolName = Objects.toString(jmxName, null); gkoPool.clear(); gkoPool.close(); gkoPool = null; @@ -526,37 +528,82 @@ public class TestGenericKeyedObjectPool extends TestKeyedObjectPool { final String[] active = new String[500]; final String[] active2 = new String[500]; - for(int i=0;i<500;i++) { + for (int i = 0; i < 500; i++) { active[i] = gkoPool.borrowObject(""); active2[i] = gkoPool.borrowObject("2"); } - for(int i=0;i<500;i++) { - gkoPool.returnObject("",active[i]); - gkoPool.returnObject("2",active2[i]); + for (int i = 0; i < 500; i++) { + gkoPool.returnObject("", active[i]); + gkoPool.returnObject("2", active2[i]); } - try { Thread.sleep(1100L); } catch(final InterruptedException e) { } - assertTrue(gkoPool.getNumIdle() < 1000,"Should be less than 1000 idle, found " + gkoPool.getNumIdle()); - try { Thread.sleep(600L); } catch(final InterruptedException e) { } - assertTrue(gkoPool.getNumIdle() < 900,"Should be less than 900 idle, found " + gkoPool.getNumIdle()); - try { Thread.sleep(600L); } catch(final InterruptedException e) { } - assertTrue(gkoPool.getNumIdle() < 800,"Should be less than 800 idle, found " + gkoPool.getNumIdle()); - try { Thread.sleep(600L); } catch(final InterruptedException e) { } - assertTrue(gkoPool.getNumIdle() < 700,"Should be less than 700 idle, found " + gkoPool.getNumIdle()); - try { Thread.sleep(600L); } catch(final InterruptedException e) { } - assertTrue(gkoPool.getNumIdle() < 600,"Should be less than 600 idle, found " + gkoPool.getNumIdle()); - try { Thread.sleep(600L); } catch(final InterruptedException e) { } - assertTrue(gkoPool.getNumIdle() < 500,"Should be less than 500 idle, found " + gkoPool.getNumIdle()); - try { Thread.sleep(600L); } catch(final InterruptedException e) { } - assertTrue(gkoPool.getNumIdle() < 400,"Should be less than 400 idle, found " + gkoPool.getNumIdle()); - try { Thread.sleep(600L); } catch(final InterruptedException e) { } - assertTrue(gkoPool.getNumIdle() < 300,"Should be less than 300 idle, found " + gkoPool.getNumIdle()); - try { Thread.sleep(600L); } catch(final InterruptedException e) { } - assertTrue(gkoPool.getNumIdle() < 200,"Should be less than 200 idle, found " + gkoPool.getNumIdle()); - try { Thread.sleep(600L); } catch(final InterruptedException e) { } - assertTrue(gkoPool.getNumIdle() < 100,"Should be less than 100 idle, found " + gkoPool.getNumIdle()); - try { Thread.sleep(600L); } catch(final InterruptedException e) { } - assertEquals(0,gkoPool.getNumIdle(),"Should be zero idle, found " + gkoPool.getNumIdle()); + try { + Thread.sleep(1100L); + } catch (final InterruptedException e) { + // ignore + } + assertTrue(gkoPool.getNumIdle() < 1000, "Should be less than 1000 idle, found " + gkoPool.getNumIdle()); + final long sleepMillisPart2 = 600L; + try { + Thread.sleep(sleepMillisPart2); + } catch (final InterruptedException e) { + // ignore + } + assertTrue(gkoPool.getNumIdle() < 900, "Should be less than 900 idle, found " + gkoPool.getNumIdle()); + try { + Thread.sleep(sleepMillisPart2); + } catch (final InterruptedException e) { + // ignore + } + assertTrue(gkoPool.getNumIdle() < 800, "Should be less than 800 idle, found " + gkoPool.getNumIdle()); + try { + Thread.sleep(sleepMillisPart2); + } catch (final InterruptedException e) { + // ignore + } + assertTrue(gkoPool.getNumIdle() < 700, "Should be less than 700 idle, found " + gkoPool.getNumIdle()); + try { + Thread.sleep(sleepMillisPart2); + } catch (final InterruptedException e) { + // ignore + } + assertTrue(gkoPool.getNumIdle() < 600, "Should be less than 600 idle, found " + gkoPool.getNumIdle()); + try { + Thread.sleep(sleepMillisPart2); + } catch (final InterruptedException e) { + // ignore + } + assertTrue(gkoPool.getNumIdle() < 500, "Should be less than 500 idle, found " + gkoPool.getNumIdle()); + try { + Thread.sleep(sleepMillisPart2); + } catch (final InterruptedException e) { + // ignore + } + assertTrue(gkoPool.getNumIdle() < 400, "Should be less than 400 idle, found " + gkoPool.getNumIdle()); + try { + Thread.sleep(sleepMillisPart2); + } catch (final InterruptedException e) { + // ignore + } + assertTrue(gkoPool.getNumIdle() < 300, "Should be less than 300 idle, found " + gkoPool.getNumIdle()); + try { + Thread.sleep(sleepMillisPart2); + } catch (final InterruptedException e) { + // ignore + } + assertTrue(gkoPool.getNumIdle() < 200, "Should be less than 200 idle, found " + gkoPool.getNumIdle()); + try { + Thread.sleep(sleepMillisPart2); + } catch (final InterruptedException e) { + // ignore + } + assertTrue(gkoPool.getNumIdle() < 100, "Should be less than 100 idle, found " + gkoPool.getNumIdle()); + try { + Thread.sleep(sleepMillisPart2); + } catch (final InterruptedException e) { + // ignore + } + assertEquals(0, gkoPool.getNumIdle(), "Should be zero idle, found " + gkoPool.getNumIdle()); } /** diff --git a/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java b/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java index 8381631..a1fef27 100644 --- a/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java +++ b/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java @@ -26,6 +26,7 @@ import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.NoSuchElementException; +import java.util.Objects; import java.util.Random; import java.util.Set; import java.util.Timer; @@ -906,7 +907,9 @@ public class TestGenericObjectPool extends TestBaseObjectPool { @AfterEach public void tearDown() throws Exception { - final String poolName = genericObjectPool.getJmxName().toString(); + final ObjectName jmxName = genericObjectPool.getJmxName(); + final String poolName = Objects.toString(jmxName, null); + genericObjectPool.clear(); genericObjectPool.close(); genericObjectPool = null;