~ubuntu-branches/ubuntu/trusty/tomcat7/trusty-security

« back to all changes in this revision

Viewing changes to modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/test/PoolCleanerTest.java

  • Committer: Package Import Robot
  • Author(s): tony mancill
  • Date: 2012-06-07 22:43:21 UTC
  • mfrom: (11.1.4 sid)
  • Revision ID: package-import@ubuntu.com-20120607224321-cfev8j681yueyov3
Tags: 7.0.27-1
New upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
 
18
18
package org.apache.tomcat.jdbc.test;
19
19
 
 
20
import java.util.Map;
 
21
 
20
22
import org.apache.tomcat.jdbc.pool.ConnectionPool;
21
23
import org.apache.tomcat.jdbc.pool.DataSource;
22
24
 
26
28
        super(name);
27
29
    }
28
30
 
 
31
    private int countPoolCleanerThreads() {
 
32
        Map<Thread, StackTraceElement[]> threadmap = Thread.getAllStackTraces();
 
33
        int result = 0;
 
34
        for (Thread t : threadmap.keySet()) {
 
35
            if (t.getName().startsWith("PoolCleaner[")) result++;
 
36
        }
 
37
        return result;
 
38
    }
 
39
 
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());
34
46
 
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());
38
51
 
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());
 
56
 
 
57
 
42
58
    }
43
59
 
44
60
    public void test2PoolCleaners() throws Exception {
49
65
 
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());
52
69
 
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());
57
75
 
58
76
        datasource.close();
59
77
        assertEquals("Pool cleaner should have 1 cleaner.",1,ConnectionPool.getPoolCleaners().size() );
62
80
        ds2.close();
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());
65
84
    }
66
85
 
67
86
    public void testIdleTimeout() throws Exception {