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> {