From: markt Date: Sun, 6 Jun 2010 21:24:09 +0000 (+0000) Subject: Final part of refactoring STRICT_SERVLET_COMPLIANCE so it just changes defaults X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=db946f5324085065469e948695eae81f1715465d;p=tomcat7.0 Final part of refactoring STRICT_SERVLET_COMPLIANCE so it just changes defaults New property LAST_ACCESS_AT_START git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@951985 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/java/org/apache/catalina/session/StandardSession.java b/java/org/apache/catalina/session/StandardSession.java index 933d3e7b3..1de906034 100644 --- a/java/org/apache/catalina/session/StandardSession.java +++ b/java/org/apache/catalina/session/StandardSession.java @@ -88,11 +88,10 @@ public class StandardSession protected static final boolean ACTIVITY_CHECK; + protected static final boolean LAST_ACCESS_AT_START; static { - STRICT_SERVLET_COMPLIANCE = Boolean.valueOf(System.getProperty( - "org.apache.catalina.STRICT_SERVLET_COMPLIANCE", - "false")).booleanValue(); + STRICT_SERVLET_COMPLIANCE = Globals.STRICT_SERVLET_COMPLIANCE; String activityCheck = System.getProperty( "org.apache.catalina.session.StandardSession.ACTIVITY_CHECK"); @@ -102,6 +101,15 @@ public class StandardSession ACTIVITY_CHECK = Boolean.valueOf(activityCheck).booleanValue(); } + + String lastAccessAtStart = System.getProperty( + "org.apache.catalina.session.StandardSession.LAST_ACCESS_AT_START"); + if (lastAccessAtStart == null) { + LAST_ACCESS_AT_START = STRICT_SERVLET_COMPLIANCE; + } else { + LAST_ACCESS_AT_START = + Boolean.valueOf(lastAccessAtStart).booleanValue(); + } } @@ -614,7 +622,7 @@ public class StandardSession if (maxInactiveInterval >= 0) { long timeNow = System.currentTimeMillis(); int timeIdle; - if (Globals.STRICT_SERVLET_COMPLIANCE) { + if (LAST_ACCESS_AT_START) { timeIdle = (int) ((timeNow - lastAccessedTime) / 1000L); } else { timeIdle = (int) ((timeNow - thisAccessedTime) / 1000L); @@ -668,7 +676,7 @@ public class StandardSession * The servlet spec mandates to ignore request handling time * in lastAccessedTime. */ - if (Globals.STRICT_SERVLET_COMPLIANCE) { + if (LAST_ACCESS_AT_START) { this.lastAccessedTime = this.thisAccessedTime; this.thisAccessedTime = System.currentTimeMillis(); } else { diff --git a/webapps/docs/config/systemprops.xml b/webapps/docs/config/systemprops.xml index b67145057..344720cd8 100644 --- a/webapps/docs/config/systemprops.xml +++ b/webapps/docs/config/systemprops.xml @@ -228,6 +228,7 @@
  • org.apache.catalina.core.ApplicationDispatcher.WRAP_SAME_OBJECT
  • org.apache.catalina.core.StandardHostValve.ACCESS_SESSION
  • org.apache.catalina.session.StandardSession.ACTIVITY_CHECK
  • +
  • org.apache.catalina.session.StandardSession.LAST_ACCESS_AT_START
  • org.apache.tomcat.util.http.ServerCookie.ALWAYS_ADD_EXPIRES.
  • org.apache.tomcat.util.http.ServerCookie.FWD_SLASH_IS_SEPARATOR.
  • org.apache.tomcat.util.http.ServerCookie.STRICT_NAMING.
  • @@ -368,6 +369,18 @@ else the default value will be false.

    + +

    If this is true, the last accessed time for sessions will + be calculated from the beginning of the previous request. If + false, the last accessed time for sessions will be calculated + from the end of the previous request. This also affects how the idle time + is calculated. If + org.apache.catalina.STRICT_SERVLET_COMPLIANCE is set to + true, the default of this setting will be true, + else the default value will be false.

    +
    +