Additional fix for POOL-315. Thanks to Keiichi Fujino Also review previous fix.
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/pool/trunk@1769582 13f79535-47bb-0310-9956-ffa450edef68 Project: http://git-wip-us.apache.org/repos/asf/commons-pool/repo Commit: http://git-wip-us.apache.org/repos/asf/commons-pool/commit/b48c9f52 Tree: http://git-wip-us.apache.org/repos/asf/commons-pool/tree/b48c9f52 Diff: http://git-wip-us.apache.org/repos/asf/commons-pool/diff/b48c9f52 Branch: refs/heads/master Commit: b48c9f52be991f280bff592dd49c1fd0de2b080a Parents: 741d1f5 Author: Mark Thomas <ma...@apache.org> Authored: Mon Nov 14 09:44:18 2016 +0000 Committer: Mark Thomas <ma...@apache.org> Committed: Mon Nov 14 09:44:18 2016 +0000 ---------------------------------------------------------------------- src/changes/changes.xml | 2 +- .../org/apache/commons/pool2/impl/BaseGenericObjectPool.java | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/commons-pool/blob/b48c9f52/src/changes/changes.xml ---------------------------------------------------------------------- diff --git a/src/changes/changes.xml b/src/changes/changes.xml index ae14e69..545e1b7 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -71,7 +71,7 @@ The <action> type attribute can be add,update,fix,remove. Ensure that any class name used for evictionPolicyClassName represents a class that implements EvictionPolicy. </action> - <action dev="markt" issue="POOL-315" type="fix"> + <action dev="markt" issue="POOL-315" type="fix" due-to="KeiichiFujino"> Add a configurable delay (default 10 seconds) to wait when shutting down an Evictor to allow the associated thread time to complete and current evictions and to terminate. http://git-wip-us.apache.org/repos/asf/commons-pool/blob/b48c9f52/src/main/java/org/apache/commons/pool2/impl/BaseGenericObjectPool.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/pool2/impl/BaseGenericObjectPool.java b/src/main/java/org/apache/commons/pool2/impl/BaseGenericObjectPool.java index 1f46811..816e0d6 100644 --- a/src/main/java/org/apache/commons/pool2/impl/BaseGenericObjectPool.java +++ b/src/main/java/org/apache/commons/pool2/impl/BaseGenericObjectPool.java @@ -88,7 +88,7 @@ public abstract class BaseGenericObjectPool<T> extends BaseObject { private volatile long softMinEvictableIdleTimeMillis = BaseObjectPoolConfig.DEFAULT_SOFT_MIN_EVICTABLE_IDLE_TIME_MILLIS; private volatile EvictionPolicy<T> evictionPolicy; - private long evictorShutdownTimeoutMillis = + private volatile long evictorShutdownTimeoutMillis = BaseObjectPoolConfig.DEFAULT_EVICTOR_SHUTDOWN_TIMEOUT_MILLIS; @@ -643,7 +643,7 @@ public abstract class BaseGenericObjectPool<T> extends BaseObject { * @return The timeout in milliseconds that will be used while waiting for * the Evictor to shut down. */ - public long getEvictorShutdownTimeoutMillis() { + public final long getEvictorShutdownTimeoutMillis() { return evictorShutdownTimeoutMillis; } @@ -656,7 +656,7 @@ public abstract class BaseGenericObjectPool<T> extends BaseObject { * will be used while waiting for the * Evictor to shut down. */ - public void setEvictorShutdownTimeoutMillis( + public final void setEvictorShutdownTimeoutMillis( final long evictorShutdownTimeoutMillis) { this.evictorShutdownTimeoutMillis = evictorShutdownTimeoutMillis; } @@ -720,7 +720,7 @@ public abstract class BaseGenericObjectPool<T> extends BaseObject { final void startEvictor(final long delay) { synchronized (evictionLock) { if (null != evictor) { - EvictionTimer.cancel(evictor, 10, TimeUnit.SECONDS); + EvictionTimer.cancel(evictor, evictorShutdownTimeoutMillis, TimeUnit.SECONDS); evictor = null; evictionIterator = null; }