In order to avoid the unintended skip of PoolCleaner, remove the check code of the execution interval in the task that has been scheduled.
git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1753450 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java b/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java
index d71034c..1b90f32 100644
--- a/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java
+++ b/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java
@@ -1297,7 +1297,7 @@
Thread.currentThread().setContextClassLoader(loader);
}
}
- poolCleanTimer.scheduleAtFixedRate(cleaner, cleaner.sleepTime,cleaner.sleepTime);
+ poolCleanTimer.schedule(cleaner, cleaner.sleepTime,cleaner.sleepTime);
}
private static synchronized void unregisterCleaner(PoolCleaner cleaner) {
@@ -1337,7 +1337,6 @@
protected static class PoolCleaner extends TimerTask {
protected WeakReference<ConnectionPool> pool;
protected long sleepTime;
- protected volatile long lastRun = 0;
PoolCleaner(ConnectionPool pool, long sleepTime) {
this.pool = new WeakReference<>(pool);
@@ -1355,9 +1354,7 @@
ConnectionPool pool = this.pool.get();
if (pool == null) {
stopRunning();
- } else if (!pool.isClosed() &&
- (System.currentTimeMillis() - lastRun) > sleepTime) {
- lastRun = System.currentTimeMillis();
+ } else if (!pool.isClosed()) {
try {
if (pool.getPoolProperties().isRemoveAbandoned())
pool.checkAbandoned();
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index 87ca555..818e373 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -90,6 +90,15 @@
</fix>
</changelog>
</subsection>
+ <subsection name="jdbc-pool">
+ <changelog>
+ <fix>
+ In order to avoid the unintended skip of <code>PoolCleaner</code>,
+ remove the check code of the execution interval in the task that has
+ been scheduled. (kfujino)
+ </fix>
+ </changelog>
+ </subsection>
</section>
<section name="Tomcat 9.0.0.M9" rtext="2016-07-12">
<subsection name="Catalina">