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.
+
+