Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=49116
authorkfujino <kfujino@13f79535-47bb-0310-9956-ffa450edef68>
Wed, 14 Apr 2010 08:48:43 +0000 (08:48 +0000)
committerkfujino <kfujino@13f79535-47bb-0310-9956-ffa450edef68>
Wed, 14 Apr 2010 08:48:43 +0000 (08:48 +0000)
If session is already invalid, expire session to prevent memory leak.

git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@933881 13f79535-47bb-0310-9956-ffa450edef68

java/org/apache/catalina/session/StandardManager.java

index 5d5e572..b48078e 100644 (file)
@@ -397,6 +397,12 @@ public class StandardManager extends ManagerBase
                     session.setManager(this);
                     sessions.put(session.getIdInternal(), session);
                     session.activate();
+                    if (!session.isValidInternal()) {
+                        // If session is already invalid,
+                        // expire session to prevent memory leak.
+                        session.setValid(true);
+                        session.expire();
+                    }
                     sessionCounter++;
                 }
             } catch (ClassNotFoundException e) {