You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ma...@apache.org on 2011/05/13 00:50:13 UTC
svn commit: r1102500 [3/3] - in /commons/proper/pool/trunk/src:
java/org/apache/commons/pool2/impl/GenericKeyedObjectPool.java
test/org/apache/commons/pool2/impl/TestGenericKeyedObjectPool.java
Modified: commons/proper/pool/trunk/src/test/org/apache/commons/pool2/impl/TestGenericKeyedObjectPool.java
URL: http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/test/org/apache/commons/pool2/impl/TestGenericKeyedObjectPool.java?rev=1102500&r1=1102499&r2=1102500&view=diff
==============================================================================
--- commons/proper/pool/trunk/src/test/org/apache/commons/pool2/impl/TestGenericKeyedObjectPool.java (original)
+++ commons/proper/pool/trunk/src/test/org/apache/commons/pool2/impl/TestGenericKeyedObjectPool.java Thu May 12 22:50:13 2011
@@ -298,7 +298,6 @@ public class TestGenericKeyedObjectPool
public void testMaxTotalLRU() throws Exception {
pool.setMaxActive(2);
pool.setMaxTotal(3);
-// pool.setWhenExhaustedAction(WhenExhaustedAction.GROW);
String o1 = pool.borrowObject("a");
assertNotNull(o1);
@@ -335,6 +334,7 @@ public class TestGenericKeyedObjectPool
pool.returnObject("b", o6);
assertNotSame(o1, o6);
+ assertNotSame(o2, o6);
// second a is still in there
String o7 = pool.borrowObject("a");
@@ -564,7 +564,7 @@ public class TestGenericKeyedObjectPool
//Generate a random key
String key = "A";
- pool.preparePool(key, true);
+ pool.preparePool(key);
try { Thread.sleep(150L); } catch(InterruptedException e) { }
assertTrue("Should be 5 idle, found " + pool.getNumIdle(),pool.getNumIdle() == 5);
@@ -602,7 +602,7 @@ public class TestGenericKeyedObjectPool
String key = "A";
- pool.preparePool(key, true);
+ pool.preparePool(key);
assertTrue("Should be 5 idle, found " +
pool.getNumIdle(),pool.getNumIdle() == 5);
@@ -644,28 +644,6 @@ public class TestGenericKeyedObjectPool
}
@Test
- public void testMinIdleNoPopulateImmediately() throws Exception {
- pool.setMaxIdle(500);
- pool.setMinIdle(5);
- pool.setMaxActive(10);
- pool.setNumTestsPerEvictionRun(0);
- pool.setMinEvictableIdleTimeMillis(50L);
- pool.setTimeBetweenEvictionRunsMillis(1000L);
- pool.setTestWhileIdle(true);
-
-
- //Generate a random key
- String key = "A";
-
- pool.preparePool(key, false);
-
- assertTrue("Should be 0 idle, found " + pool.getNumIdle(),pool.getNumIdle() == 0);
-
- try { Thread.sleep(1500L); } catch(InterruptedException e) { }
- assertTrue("Should be 5 idle, found " + pool.getNumIdle(),pool.getNumIdle() == 5);
- }
-
- @Test
public void testMinIdleNoPreparePool() throws Exception {
pool.setMaxIdle(500);
pool.setMinIdle(5);
@@ -699,9 +677,10 @@ public class TestGenericKeyedObjectPool
assertEquals("Oldest", "key0", pool.borrowObject(key));
assertEquals("Middle", "key1", pool.borrowObject(key));
assertEquals("Youngest", "key2", pool.borrowObject(key));
- assertEquals("new-3", "key3", pool.borrowObject(key));
- pool.returnObject(key, "r");
- assertEquals("returned", "r", pool.borrowObject(key));
+ String s = pool.borrowObject(key);
+ assertEquals("new-3", "key3", s);
+ pool.returnObject(key, s);
+ assertEquals("returned", s, pool.borrowObject(key));
assertEquals("new-4", "key4", pool.borrowObject(key));
}
@@ -715,9 +694,10 @@ public class TestGenericKeyedObjectPool
assertEquals("Youngest", "key2", pool.borrowObject(key));
assertEquals("Middle", "key1", pool.borrowObject(key));
assertEquals("Oldest", "key0", pool.borrowObject(key));
- assertEquals("new-3", "key3", pool.borrowObject(key));
- pool.returnObject(key, "r");
- assertEquals("returned", "r", pool.borrowObject(key));
+ String s = pool.borrowObject(key);
+ assertEquals("new-3", "key3", s);
+ pool.returnObject(key, s);
+ assertEquals("returned", s, pool.borrowObject(key));
assertEquals("new-4", "key4", pool.borrowObject(key));
}
@@ -918,11 +898,11 @@ public class TestGenericKeyedObjectPool
// LIFO - 24, 25, 26
// FIFO - 21, 22, 23
pool.evict();
- // LIFO - 27, skip, 10
+ // LIFO - 27, 10, 11
// FIFO - 24, 25, 26
for (int i = 0; i < 8; i++) {
VisitTracker<Integer> tracker = pool.borrowObject(one);
- if ((lifo && tracker.getId() > 0) ||
+ if ((lifo && tracker.getId() > 1) ||
(!lifo && tracker.getId() > 2)) {
assertEquals("Instance " + tracker.getId() +
" visited wrong number of times.",
@@ -933,18 +913,27 @@ public class TestGenericKeyedObjectPool
2, tracker.getValidateCount());
}
}
-
+
// Randomly generate some pools with random numTests
// and make sure evictor cycles through elements appropriately
int[] smallPrimes = {2, 3, 5, 7};
Random random = new Random();
random.setSeed(System.currentTimeMillis());
- pool.setMaxIdle(-1);
for (int i = 0; i < smallPrimes.length; i++) {
- pool.setNumTestsPerEvictionRun(smallPrimes[i]);
for (int j = 0; j < 5; j++) {// Try the tests a few times
- pool.clear();
- assertEquals("NumIdle should be zero after clearing the pool",0,pool.getNumIdle());
+ // Can't use clear as some objects are still active so create
+ // a new pool
+ factory = new VisitTrackerFactory<Integer>();
+ pool = new GenericKeyedObjectPool<Integer,VisitTracker<Integer>>(factory);
+ pool.setMaxIdle(-1);
+ pool.setMaxActive(-1);
+ pool.setNumTestsPerEvictionRun(smallPrimes[i]);
+ pool.setMinEvictableIdleTimeMillis(-1);
+ pool.setTestWhileIdle(true);
+ pool.setLifo(lifo);
+ pool.setTestOnReturn(false);
+ pool.setTestOnBorrow(false);
+
int zeroLength = 10 + random.nextInt(20);
for (int k = 0; k < zeroLength; k++) {
pool.addObject(zero);