dirkv 2004/07/04 10:31:23
Modified: pool/src/test/org/apache/commons/pool/impl
TestGenericKeyedObjectPool.java
Log:
Bugzilla Bug 27493: GenericKeyedObjectPool: maxTotal limit enhancement
- apply patch from Todd Carmichael with minor modifications
Revision Changes Path
1.19 +49 -1
jakarta-commons/pool/src/test/org/apache/commons/pool/impl/TestGenericKeyedObjectPool.java
Index: TestGenericKeyedObjectPool.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/pool/src/test/org/apache/commons/pool/impl/TestGenericKeyedObjectPool.java,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- TestGenericKeyedObjectPool.java 28 Feb 2004 11:46:11 -0000 1.18
+++ TestGenericKeyedObjectPool.java 4 Jul 2004 17:31:23 -0000 1.19
@@ -221,6 +221,54 @@
assertEquals(0, pool.getNumIdle("b"));
}
+ public void testMaxTotalLRU() throws Exception {
+ pool.setMaxActive(2);
+ pool.setMaxTotal(3);
+// pool.setWhenExhaustedAction(GenericKeyedObjectPool.WHEN_EXHAUSTED_GROW);
+
+ Object o1 = pool.borrowObject("a");
+ assertNotNull(o1);
+ pool.returnObject("a", o1);
+ Thread.sleep(10);
+
+ Object o2 = pool.borrowObject("b");
+ assertNotNull(o2);
+ pool.returnObject("b", o2);
+ Thread.sleep(10);
+
+ Object o3 = pool.borrowObject("c");
+ assertNotNull(o3);
+ pool.returnObject("c", o3);
+ Thread.sleep(10);
+
+ Object o4 = pool.borrowObject("a");
+ assertNotNull(o4);
+ pool.returnObject("a", o4);
+ Thread.sleep(10);
+
+ assertSame(o1, o4);
+
+ // this should cause b to be bumped out of the pool
+ Object o5 = pool.borrowObject("d");
+ assertNotNull(o5);
+ pool.returnObject("d", o5);
+ Thread.sleep(10);
+
+ // now re-request b, we should get a different object because it should
+ // have been expelled from pool (was oldest because a was requested after b)
+ Object o6 = pool.borrowObject("b");
+ assertNotNull(o6);
+ pool.returnObject("b", o6);
+
+ assertNotSame(o1, o6);
+
+ // second a is still in there
+ Object o7 = pool.borrowObject("a");
+ assertNotNull(o7);
+ pool.returnObject("a", o7);
+
+ assertSame(o4, o7);
+ }
public void testSettersAndGetters() throws Exception {
GenericKeyedObjectPool pool = new GenericKeyedObjectPool();
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]