You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ps...@apache.org on 2015/05/15 15:15:57 UTC

svn commit: r1679560 - in /commons/proper/pool/trunk/src: changes/changes.xml main/java/org/apache/commons/pool2/impl/GenericObjectPool.java test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java

Author: psteitz
Date: Fri May 15 13:15:57 2015
New Revision: 1679560

URL: http://svn.apache.org/r1679560
Log:
Added preparePool method to GenericObjectPool.  JIRA: POOL-286.

Modified:
    commons/proper/pool/trunk/src/changes/changes.xml
    commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/impl/GenericObjectPool.java
    commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java

Modified: commons/proper/pool/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/changes/changes.xml?rev=1679560&r1=1679559&r2=1679560&view=diff
==============================================================================
--- commons/proper/pool/trunk/src/changes/changes.xml (original)
+++ commons/proper/pool/trunk/src/changes/changes.xml Fri May 15 13:15:57 2015
@@ -67,6 +67,9 @@ The <action> type attribute can be add,u
       returned again, the expected IllegalStateException is generated before the
       returning object is re-validated or re-passivated.
     </action>
+    <action dev="psteitz" type="add" issue="POOL-286">
+      Added preparePool method to GenericObjectPool.
+    </action>
   </release>
   <release version="2.3" date="2014-12-30" description=
 "This is a maintenance release that includes bug fixes and minor enhancements.">  

Modified: commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/impl/GenericObjectPool.java
URL: http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/impl/GenericObjectPool.java?rev=1679560&r1=1679559&r2=1679560&view=diff
==============================================================================
--- commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/impl/GenericObjectPool.java (original)
+++ commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/impl/GenericObjectPool.java Fri May 15 13:15:57 2015
@@ -829,6 +829,20 @@ public class GenericObjectPool<T> extend
             removeAbandoned(ac);
         }
     }
+    
+    /**
+     * Tries to ensure that {@link #getMinIdle()} idle instances are available
+     * in the pool.
+     *
+     * @throws Exception If the associated factory throws an exception
+     * @since 2.4
+     */
+    public void preparePool() throws Exception {
+        if (getMinIdle() < 1) {
+            return;
+        }
+        ensureMinIdle();
+    }
 
     /**
      * Attempts to create a new wrapped pooled object.

Modified: commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java
URL: http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java?rev=1679560&r1=1679559&r2=1679560&view=diff
==============================================================================
--- commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java (original)
+++ commons/proper/pool/trunk/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java Fri May 15 13:15:57 2015
@@ -2464,6 +2464,20 @@ public class TestGenericObjectPool exten
             Assert.assertEquals(1, waiter.getPassivationCount());
         }
     }
+    
+    public void testPreparePool() throws Exception {
+        pool.setMinIdle(1);
+        pool.setMaxTotal(1);
+        pool.preparePool();
+        Assert.assertEquals(1, pool.getNumIdle());
+        String obj = pool.borrowObject();
+        pool.preparePool();
+        Assert.assertEquals(0, pool.getNumIdle());
+        pool.setMinIdle(0);
+        pool.returnObject(obj);
+        pool.preparePool();
+        Assert.assertEquals(0, pool.getNumIdle());
+    }
 
     private static final class DummyFactory
             extends BasePooledObjectFactory<Object> {