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;

Reply via email to