From 95195093ac790fa806dea345db9ada31503d2586 Mon Sep 17 00:00:00 2001 From: markt Date: Wed, 30 Dec 2009 11:30:01 +0000 Subject: [PATCH] Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=48345 Patch provided by Keiichi Fujino git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@894591 13f79535-47bb-0310-9956-ffa450edef68 --- java/org/apache/catalina/session/StoreBase.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/java/org/apache/catalina/session/StoreBase.java b/java/org/apache/catalina/session/StoreBase.java index 5d45192de..dc5d14396 100644 --- a/java/org/apache/catalina/session/StoreBase.java +++ b/java/org/apache/catalina/session/StoreBase.java @@ -188,14 +188,17 @@ public abstract class StoreBase if (manager.getContainer().getLogger().isDebugEnabled()) { manager.getContainer().getLogger().debug(getStoreName()+ ": processExpires check number of " + keys.length + " sessions" ); } - + + long timeNow = System.currentTimeMillis(); + for (int i = 0; i < keys.length; i++) { try { StandardSession session = (StandardSession) load(keys[i]); if (session == null) { continue; } - if (session.isValid()) { + int timeIdle = (int) ((timeNow - session.getThisAccessedTime()) / 1000L); + if (timeIdle < session.getMaxInactiveInterval()) { continue; } if (manager.getContainer().getLogger().isDebugEnabled()) { @@ -208,7 +211,7 @@ public abstract class StoreBase // expire swapped out session session.expire(); } - remove(session.getIdInternal()); + remove(keys[i]); } catch (Exception e) { manager.getContainer().getLogger().error("Session: "+keys[i]+"; ", e); try { -- 2.11.0