This is an automated email from the ASF dual-hosted git repository. rmaucher pushed a commit to branch 11.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git
commit bc1a5767c15ffb11d90ed44d1d373eade360a513 Author: opencode <[email protected]> AuthorDate: Thu Nov 5 17:22:59 2026 +0100 Qualify the checkIdle minIdle floor contract checkIdle() promised that the eviction pass stops at the minIdle floor, but a purge-stale connection is released without the total-size guard, so an explicit call after a purge can take the pool below it. Document both behaviors. --- .../org/apache/tomcat/jdbc/pool/jmx/ConnectionPoolMBean.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/jmx/ConnectionPoolMBean.java b/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/jmx/ConnectionPoolMBean.java index 1a192f3fa7..b3833fb4ee 100644 --- a/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/jmx/ConnectionPoolMBean.java +++ b/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/jmx/ConnectionPoolMBean.java @@ -158,10 +158,11 @@ public interface ConnectionPoolMBean extends PoolConfiguration { /** * Runs the idle-eviction pass over the connections that are currently idle. An idle connection the configuration * says should be evicted - one that has been idle past {@code minEvictableIdleTimeMillis}, or one a - * {@link #purgeOnReturn()} or {@link #purge()} call made stale - is released, and the pass stops at the - * {@code minIdle} floor. An idle connection a borrower claims while this runs is left to that borrower. This is - * the pass the pool cleaner runs on its own timer, run on demand, and what it releases is counted by - * {@link #getReleasedIdleCount()}. + * {@link #purgeOnReturn()} or {@link #purge()} call made stale - is released, and the pass normally stops at the + * {@code minIdle} floor. A connection a purge made stale is released regardless of that floor, so an explicit + * call after a purge can take the pool below it. An idle connection a borrower claims while this runs is left to + * that borrower. This is the pass the pool cleaner runs on its own timer, run on demand, and what it releases is + * counted by {@link #getReleasedIdleCount()}. */ void checkIdle(); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
