This is an automated email from the ASF dual-hosted git repository.

markt-asf pushed a commit to branch 11.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/11.0.x by this push:
     new 67966e05cb Follow-up "Avoid some scenarios of expiration of never 
expire sessions"
67966e05cb is described below

commit 67966e05cb89c995c85403b8e32d5c6a2b5bda3f
Author: Mark Thomas <[email protected]>
AuthorDate: Fri Aug 28 14:11:43 2026 +0100

    Follow-up "Avoid some scenarios of expiration of never expire sessions"
    
    getMaxInactiveInterval == 0 is documented as never expire.
---
 java/org/apache/catalina/session/DataSourceStore.java | 2 +-
 java/org/apache/catalina/session/StoreBase.java       | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/java/org/apache/catalina/session/DataSourceStore.java 
b/java/org/apache/catalina/session/DataSourceStore.java
index ee7e9cbaac..8e87813977 100644
--- a/java/org/apache/catalina/session/DataSourceStore.java
+++ b/java/org/apache/catalina/session/DataSourceStore.java
@@ -356,7 +356,7 @@ public class DataSourceStore extends StoreBase {
     private String[] keys(boolean expiredOnly) throws IOException {
         String sqlTmp = "SELECT " + sessionIdCol + " FROM " + sessionTable + " 
WHERE " + sessionAppCol + " = ?";
         if (expiredOnly) {
-            sqlTmp += " AND " + sessionMaxInactiveCol + " >= 0";
+            sqlTmp += " AND " + sessionMaxInactiveCol + " > 0";
             sqlTmp += " AND (" + sessionLastAccessedCol + " + " + 
sessionMaxInactiveCol + " * 1000 < ?)";
         }
         final String keysSql = sqlTmp;
diff --git a/java/org/apache/catalina/session/StoreBase.java 
b/java/org/apache/catalina/session/StoreBase.java
index 373594d6f5..190808d35a 100644
--- a/java/org/apache/catalina/session/StoreBase.java
+++ b/java/org/apache/catalina/session/StoreBase.java
@@ -161,7 +161,7 @@ public abstract class StoreBase extends LifecycleBase 
implements Store {
                 }
                 int timeIdle = (int) ((timeNow - 
session.getThisAccessedTime()) / 1000L);
                 int maxInactive = session.getMaxInactiveInterval();
-                if (maxInactive < 0 || timeIdle < maxInactive) {
+                if (maxInactive <= 0 || timeIdle < maxInactive) {
                     continue;
                 }
                 if (manager.getContext().getLogger().isTraceEnabled()) {


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to