31
private int countPoolCleanerThreads() {
32
Map<Thread, StackTraceElement[]> threadmap = Thread.getAllStackTraces();
34
for (Thread t : threadmap.keySet()) {
35
if (t.getName().startsWith("PoolCleaner[")) result++;
29
40
public void testPoolCleaner() throws Exception {
30
41
datasource.getPoolProperties().setTimeBetweenEvictionRunsMillis(2000);
31
42
datasource.getPoolProperties().setTestWhileIdle(true);
32
43
assertEquals("Pool cleaner should not be started yet.",0,ConnectionPool.getPoolCleaners().size() );
33
44
assertNull("Pool timer should be null", ConnectionPool.getPoolTimer());
45
assertEquals("Pool cleaner threads should not be present.",0, countPoolCleanerThreads());
35
47
datasource.getConnection().close();
36
48
assertEquals("Pool cleaner should have 1 cleaner.",1,ConnectionPool.getPoolCleaners().size() );
37
49
assertNotNull("Pool timer should not be null", ConnectionPool.getPoolTimer());
50
assertEquals("Pool cleaner threads should be 1.",1, countPoolCleanerThreads());
39
52
datasource.close();
40
53
assertEquals("Pool shutdown, no cleaners should be present.",0,ConnectionPool.getPoolCleaners().size() );
41
54
assertNull("Pool timer should be null after shutdown", ConnectionPool.getPoolTimer());
55
assertEquals("Pool cleaner threads should not be present after close.",0, countPoolCleanerThreads());
44
60
public void test2PoolCleaners() throws Exception {
50
66
assertEquals("Pool cleaner should not be started yet.",0,ConnectionPool.getPoolCleaners().size() );
51
67
assertNull("Pool timer should be null", ConnectionPool.getPoolTimer());
68
assertEquals("Pool cleaner threads should not be present.",0, countPoolCleanerThreads());
53
70
datasource.getConnection().close();
54
71
ds2.getConnection().close();
55
72
assertEquals("Pool cleaner should have 2 cleaner.",2,ConnectionPool.getPoolCleaners().size() );
56
73
assertNotNull("Pool timer should not be null", ConnectionPool.getPoolTimer());
74
assertEquals("Pool cleaner threads should be 1.",1, countPoolCleanerThreads());
58
76
datasource.close();
59
77
assertEquals("Pool cleaner should have 1 cleaner.",1,ConnectionPool.getPoolCleaners().size() );
63
81
assertEquals("Pool shutdown, no cleaners should be present.",0,ConnectionPool.getPoolCleaners().size() );
64
82
assertNull("Pool timer should be null after shutdown", ConnectionPool.getPoolTimer());
83
assertEquals("Pool cleaner threads should not be present after close.",0, countPoolCleanerThreads());
67
86
public void testIdleTimeout() throws Exception {