Repository: commons-pool
Updated Branches:
  refs/heads/master a5c135123 -> d8992b5e2


[POOL-332] ObjectPool and KeyedObject pool should extend Closeable.
Start cleaning up tests by managing pools with try-with-resource blocks.
More to do. Any help appreciated. 'mvn clean verify' passes.

Project: http://git-wip-us.apache.org/repos/asf/commons-pool/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-pool/commit/d8992b5e
Tree: http://git-wip-us.apache.org/repos/asf/commons-pool/tree/d8992b5e
Diff: http://git-wip-us.apache.org/repos/asf/commons-pool/diff/d8992b5e

Branch: refs/heads/master
Commit: d8992b5e2983dbd8d773db09744eb9d617de1b6e
Parents: a5c1351
Author: Gary Gregory <ggreg...@apache.org>
Authored: Tue Oct 31 15:45:14 2017 -0600
Committer: Gary Gregory <ggreg...@apache.org>
Committed: Tue Oct 31 15:45:14 2017 -0600

----------------------------------------------------------------------
 .../commons/pool2/TestKeyedObjectPool.java      |   5 +-
 .../org/apache/commons/pool2/TestPoolUtils.java | 208 +++++++++----------
 2 files changed, 102 insertions(+), 111 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-pool/blob/d8992b5e/src/test/java/org/apache/commons/pool2/TestKeyedObjectPool.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/pool2/TestKeyedObjectPool.java 
b/src/test/java/org/apache/commons/pool2/TestKeyedObjectPool.java
index c972d67..ad95fac 100644
--- a/src/test/java/org/apache/commons/pool2/TestKeyedObjectPool.java
+++ b/src/test/java/org/apache/commons/pool2/TestKeyedObjectPool.java
@@ -414,13 +414,10 @@ public abstract class TestKeyedObjectPool {
     public void testToString() throws Exception {
         final FailingKeyedPooledObjectFactory factory =
                 new FailingKeyedPooledObjectFactory();
-        final KeyedObjectPool<Object,Object> pool = makeEmptyPool(factory);
-        try {
+        try (final KeyedObjectPool<Object,Object> pool = 
makeEmptyPool(factory)) {
             pool.toString();
         } catch(final UnsupportedOperationException uoe) {
             return; // test not supported
-        } finally {
-            pool.close();
         }
     }
 

http://git-wip-us.apache.org/repos/asf/commons-pool/blob/d8992b5e/src/test/java/org/apache/commons/pool2/TestPoolUtils.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/pool2/TestPoolUtils.java 
b/src/test/java/org/apache/commons/pool2/TestPoolUtils.java
index 0c9f0ed..10f09bb 100644
--- a/src/test/java/org/apache/commons/pool2/TestPoolUtils.java
+++ b/src/test/java/org/apache/commons/pool2/TestPoolUtils.java
@@ -110,11 +110,11 @@ public class TestPoolUtils {
         // Test that the minIdle check doesn't add too many idle objects
         @SuppressWarnings("unchecked")
         final PooledObjectFactory<Object> pof = 
createProxy(PooledObjectFactory.class, calledMethods);
-        final ObjectPool<Object> op = new GenericObjectPool<>(pof);
-        PoolUtils.checkMinIdle(op, 2, 100);
-        Thread.sleep(1000);
-        assertEquals(2, op.getNumIdle());
-        op.close();
+        try (final ObjectPool<Object> op = new GenericObjectPool<>(pof)) {
+            PoolUtils.checkMinIdle(op, 2, 100);
+            Thread.sleep(1000);
+            assertEquals(2, op.getNumIdle());
+        }
         int makeObjectCount = 0;
         final Iterator<String> iter = calledMethods.iterator();
         while (iter.hasNext()) {
@@ -188,13 +188,13 @@ public class TestPoolUtils {
         @SuppressWarnings("unchecked")
         final KeyedPooledObjectFactory<Object,Object> kpof =
             createProxy(KeyedPooledObjectFactory.class, calledMethods);
-        final KeyedObjectPool<Object,Object> kop =
-                new GenericKeyedObjectPool<>(kpof);
-        PoolUtils.checkMinIdle(kop, key, 2, 100);
-        Thread.sleep(400);
-        assertEquals(2, kop.getNumIdle(key));
-        assertEquals(2, kop.getNumIdle());
-        kop.close();
+        try (final KeyedObjectPool<Object,Object> kop =
+                new GenericKeyedObjectPool<>(kpof)) {
+            PoolUtils.checkMinIdle(kop, key, 2, 100);
+            Thread.sleep(400);
+            assertEquals(2, kop.getNumIdle(key));
+            assertEquals(2, kop.getNumIdle());
+        }
         int makeObjectCount = 0;
         final Iterator<String> iter = calledMethods.iterator();
         while (iter.hasNext()) {
@@ -463,16 +463,16 @@ public class TestPoolUtils {
     @Test
     public void testErodingPoolObjectPool() throws Exception {
         try {
-            PoolUtils.erodingPool((ObjectPool<Object>)null);
+            PoolUtils.erodingPool((ObjectPool<Object>) null);
             fail("PoolUtils.erodingPool(ObjectPool) must not allow a null 
pool.");
-        } catch(final IllegalArgumentException iae) {
+        } catch (final IllegalArgumentException iae) {
             // expected
         }
 
         try {
-            PoolUtils.erodingPool((ObjectPool<Object>)null, 1f);
+            PoolUtils.erodingPool((ObjectPool<Object>) null, 1f);
             fail("PoolUtils.erodingPool(ObjectPool, float) must not allow a 
null pool.");
-        } catch(final IllegalArgumentException iae) {
+        } catch (final IllegalArgumentException iae) {
             // expected
         }
 
@@ -490,66 +490,63 @@ public class TestPoolUtils {
         };
 
         try {
-            @SuppressWarnings({"unchecked", "unused"})
-            final
-            Object o = PoolUtils.erodingPool(createProxy(ObjectPool.class, 
handler), -1f);
+            @SuppressWarnings({ "unchecked", "unused" })
+            final Object o = 
PoolUtils.erodingPool(createProxy(ObjectPool.class, handler), -1f);
             fail("PoolUtils.erodingPool(ObjectPool, float) must not allow a 
non-positive factor.");
-        } catch(final IllegalArgumentException iae) {
+        } catch (final IllegalArgumentException iae) {
             // expected
         }
 
         // If the logic behind PoolUtils.erodingPool changes then this will 
need to be tweaked.
         final float factor = 0.01f; // about ~9 seconds until first discard
-        @SuppressWarnings("unchecked")
-        final ObjectPool<Object> pool = PoolUtils.erodingPool(
-                createProxy(ObjectPool.class, handler), factor);
-
         final List<String> expectedMethods = new ArrayList<>();
-        assertEquals(expectedMethods, calledMethods);
-
-        pool.addObject();
-        expectedMethods.add("addObject");
-
-        Object o = pool.borrowObject();
-        expectedMethods.add("borrowObject");
-
-        assertEquals(expectedMethods, calledMethods);
+        try (@SuppressWarnings("unchecked")
+        final ObjectPool<Object> pool = 
PoolUtils.erodingPool(createProxy(ObjectPool.class, handler), factor)) {
 
-        pool.returnObject(o);
-        expectedMethods.add("returnObject");
-        assertEquals(expectedMethods, calledMethods);
+            assertEquals(expectedMethods, calledMethods);
 
-        // the invocation handler always returns 1
-        assertEquals(1, pool.getNumActive());
-        expectedMethods.add("getNumActive");
-        assertEquals(1, pool.getNumIdle());
-        expectedMethods.add("getNumIdle");
+            pool.addObject();
+            expectedMethods.add("addObject");
 
-        for (int i=0; i < 5; i ++) {
-            o = pool.borrowObject();
+            Object o = pool.borrowObject();
             expectedMethods.add("borrowObject");
 
-            Thread.sleep(50);
+            assertEquals(expectedMethods, calledMethods);
 
             pool.returnObject(o);
             expectedMethods.add("returnObject");
-
             assertEquals(expectedMethods, calledMethods);
 
-            expectedMethods.clear();
-            calledMethods.clear();
-        }
+            // the invocation handler always returns 1
+            assertEquals(1, pool.getNumActive());
+            expectedMethods.add("getNumActive");
+            assertEquals(1, pool.getNumIdle());
+            expectedMethods.add("getNumIdle");
 
-        Thread.sleep(10000); // 10 seconds
+            for (int i = 0; i < 5; i++) {
+                o = pool.borrowObject();
+                expectedMethods.add("borrowObject");
 
+                Thread.sleep(50);
 
-        o = pool.borrowObject();
-        expectedMethods.add("borrowObject");
-        pool.returnObject(o);
-        expectedMethods.add("getNumIdle");
-        expectedMethods.add("invalidateObject");
-        pool.clear();
-        pool.close();
+                pool.returnObject(o);
+                expectedMethods.add("returnObject");
+
+                assertEquals(expectedMethods, calledMethods);
+
+                expectedMethods.clear();
+                calledMethods.clear();
+            }
+
+            Thread.sleep(10000); // 10 seconds
+
+            o = pool.borrowObject();
+            expectedMethods.add("borrowObject");
+            pool.returnObject(o);
+            expectedMethods.add("getNumIdle");
+            expectedMethods.add("invalidateObject");
+            pool.clear();
+        }
         expectedMethods.add("clear");
         expectedMethods.add("close");
         assertEquals(expectedMethods, calledMethods);
@@ -576,23 +573,23 @@ public class TestPoolUtils {
     @Test
     public void testErodingPoolKeyedObjectPool() throws Exception {
         try {
-            PoolUtils.erodingPool((KeyedObjectPool<Object,Object>)null);
+            PoolUtils.erodingPool((KeyedObjectPool<Object, Object>) null);
             fail("PoolUtils.erodingPool(KeyedObjectPool) must not allow a null 
pool.");
-        } catch(final IllegalArgumentException iae) {
+        } catch (final IllegalArgumentException iae) {
             // expected
         }
 
         try {
-            PoolUtils.erodingPool((KeyedObjectPool<Object,Object>)null, 1f);
+            PoolUtils.erodingPool((KeyedObjectPool<Object, Object>) null, 1f);
             fail("PoolUtils.erodingPool(KeyedObjectPool, float) must not allow 
a null pool.");
-        } catch(final IllegalArgumentException iae) {
+        } catch (final IllegalArgumentException iae) {
             // expected
         }
 
         try {
-            PoolUtils.erodingPool((KeyedObjectPool<Object,Object>)null, 1f, 
true);
+            PoolUtils.erodingPool((KeyedObjectPool<Object, Object>) null, 1f, 
true);
             fail("PoolUtils.erodingPool(KeyedObjectPool, float, boolean) must 
not allow a null pool.");
-        } catch(final IllegalArgumentException iae) {
+        } catch (final IllegalArgumentException iae) {
             // expected
         }
 
@@ -610,77 +607,74 @@ public class TestPoolUtils {
         };
 
         try {
-            @SuppressWarnings({"unchecked", "unused"})
-            final
-            Object o = 
PoolUtils.erodingPool(createProxy(KeyedObjectPool.class, handler), 0f);
+            @SuppressWarnings({ "unchecked", "unused" })
+            final Object o = 
PoolUtils.erodingPool(createProxy(KeyedObjectPool.class, handler), 0f);
             fail("PoolUtils.erodingPool(ObjectPool, float) must not allow a 
non-positive factor.");
-        } catch(final IllegalArgumentException iae) {
+        } catch (final IllegalArgumentException iae) {
             // expected
         }
 
         try {
-            @SuppressWarnings({"unchecked", "unused"})
-            final
-            Object o = 
PoolUtils.erodingPool(createProxy(KeyedObjectPool.class, handler), 0f, false);
+            @SuppressWarnings({ "unchecked", "unused" })
+            final Object o = 
PoolUtils.erodingPool(createProxy(KeyedObjectPool.class, handler), 0f, false);
             fail("PoolUtils.erodingPool(ObjectPool, float, boolean) must not 
allow a non-positive factor.");
-        } catch(final IllegalArgumentException iae) {
+        } catch (final IllegalArgumentException iae) {
             // expected
         }
 
         // If the logic behind PoolUtils.erodingPool changes then this will 
need to be tweaked.
         final float factor = 0.01f; // about ~9 seconds until first discard
-        @SuppressWarnings("unchecked")
-        final KeyedObjectPool<Object,Object> pool =
-            PoolUtils.erodingPool(createProxy(KeyedObjectPool.class, handler), 
factor);
-
         final List<String> expectedMethods = new ArrayList<>();
-        assertEquals(expectedMethods, calledMethods);
-
-        final Object key = "key";
-
-        pool.addObject(key);
-        expectedMethods.add("addObject");
-
-        Object o = pool.borrowObject(key);
-        expectedMethods.add("borrowObject");
+        try (@SuppressWarnings("unchecked")
+        final KeyedObjectPool<Object, Object> pool = 
PoolUtils.erodingPool(createProxy(KeyedObjectPool.class, handler),
+                factor)) {
 
-        assertEquals(expectedMethods, calledMethods);
+            assertEquals(expectedMethods, calledMethods);
 
-        pool.returnObject(key, o);
-        expectedMethods.add("returnObject");
-        assertEquals(expectedMethods, calledMethods);
+            final Object key = "key";
 
-        // the invocation handler always returns 1
-        assertEquals(1, pool.getNumActive());
-        expectedMethods.add("getNumActive");
-        assertEquals(1, pool.getNumIdle());
-        expectedMethods.add("getNumIdle");
+            pool.addObject(key);
+            expectedMethods.add("addObject");
 
-        for (int i=0; i < 5; i ++) {
-            o = pool.borrowObject(key);
+            Object o = pool.borrowObject(key);
             expectedMethods.add("borrowObject");
 
-            Thread.sleep(50);
+            assertEquals(expectedMethods, calledMethods);
 
             pool.returnObject(key, o);
             expectedMethods.add("returnObject");
-
             assertEquals(expectedMethods, calledMethods);
 
-            expectedMethods.clear();
-            calledMethods.clear();
-        }
+            // the invocation handler always returns 1
+            assertEquals(1, pool.getNumActive());
+            expectedMethods.add("getNumActive");
+            assertEquals(1, pool.getNumIdle());
+            expectedMethods.add("getNumIdle");
 
-        Thread.sleep(10000); // 10 seconds
+            for (int i = 0; i < 5; i++) {
+                o = pool.borrowObject(key);
+                expectedMethods.add("borrowObject");
 
+                Thread.sleep(50);
 
-        o = pool.borrowObject(key);
-        expectedMethods.add("borrowObject");
-        pool.returnObject(key, o);
-        expectedMethods.add("getNumIdle");
-        expectedMethods.add("invalidateObject");
-        pool.clear();
-        pool.close();
+                pool.returnObject(key, o);
+                expectedMethods.add("returnObject");
+
+                assertEquals(expectedMethods, calledMethods);
+
+                expectedMethods.clear();
+                calledMethods.clear();
+            }
+
+            Thread.sleep(10000); // 10 seconds
+
+            o = pool.borrowObject(key);
+            expectedMethods.add("borrowObject");
+            pool.returnObject(key, o);
+            expectedMethods.add("getNumIdle");
+            expectedMethods.add("invalidateObject");
+            pool.clear();
+        }
         expectedMethods.add("clear");
         expectedMethods.add("close");
         assertEquals(expectedMethods, calledMethods);

Reply via email to