Now expose thisAccessedTime via the session interface
authorrjung <rjung@13f79535-47bb-0310-9956-ffa450edef68>
Wed, 5 Nov 2008 22:11:04 +0000 (22:11 +0000)
committerrjung <rjung@13f79535-47bb-0310-9956-ffa450edef68>
Wed, 5 Nov 2008 22:11:04 +0000 (22:11 +0000)
and ManagerBase, so we can use it from outside the session.

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

java/org/apache/catalina/Session.java
java/org/apache/catalina/ha/session/LocalStrings.properties
java/org/apache/catalina/ha/session/LocalStrings_es.properties
java/org/apache/catalina/session/LocalStrings.properties
java/org/apache/catalina/session/LocalStrings_es.properties
java/org/apache/catalina/session/LocalStrings_fr.properties
java/org/apache/catalina/session/LocalStrings_ja.properties
java/org/apache/catalina/session/ManagerBase.java
java/org/apache/catalina/session/StandardSession.java

index 610084c..14766ce 100644 (file)
@@ -131,6 +131,22 @@ public interface Session {
      * session, as the number of milliseconds since midnight, January 1, 1970
      * GMT.  Actions that your application takes, such as getting or setting
      * a value associated with the session, do not affect the access time.
+     * This one gets updated whenever a request starts.
+     */
+    public long getThisAccessedTime();
+
+    /**
+     * Return the last client access time without invalidation check
+     * @see #getThisAccessedTime().
+     */
+    public long getThisAccessedTimeInternal();
+
+    /**
+     * Return the last time the client sent a request associated with this
+     * session, as the number of milliseconds since midnight, January 1, 1970
+     * GMT.  Actions that your application takes, such as getting or setting
+     * a value associated with the session, do not affect the access time.
+     * This one gets updated whenever a request finishes.
      */
     public long getLastAccessedTime();
 
index 9d513f1..1c4737a 100644 (file)
@@ -98,6 +98,7 @@ standardSession.isNew.ise=isNew: Session already invalidated
 standardSession.getAttribute.ise=getAttribute: Session already invalidated
 standardSession.getAttributeNames.ise=getAttributeNames: Session already invalidated
 standardSession.getCreationTime.ise=getCreationTime: Session already invalidated
+standardSession.getThisAccessedTime.ise=getThisAccessedTime: Session already invalidated
 standardSession.getLastAccessedTime.ise=getLastAccessedTime: Session already invalidated
 standardSession.getId.ise=getId: Session already invalidated
 standardSession.getMaxInactiveInterval.ise=getMaxInactiveInterval: Session already invalidated
@@ -109,4 +110,4 @@ standardSession.setAttribute.iae=setAttribute: Non-serializable attribute
 standardSession.setAttribute.ise=setAttribute: Session already invalidated
 standardSession.setAttribute.namenull=setAttribute: name parameter cannot be null
 standardSession.sessionCreated=Created Session id = {0}
-serializablePrincipal.readPrincipal.cnfe=readPrincipal: Failed to recreate user Principal
\ No newline at end of file
+serializablePrincipal.readPrincipal.cnfe=readPrincipal: Failed to recreate user Principal
index 50d9c30..ec30372 100644 (file)
@@ -98,6 +98,7 @@ standardSession.isNew.ise = isNew\: Sesi\u00F3n ya invalidada
 standardSession.getAttribute.ise = getAttribute\: Sesi\u00F3n ya invalidada
 standardSession.getAttributeNames.ise = getAttributeNames\: Sesi\u00F3n ya invalidada
 standardSession.getCreationTime.ise = getCreationTime\: Sesi\u00F3n ya invalidada
+standardSession.getThisAccessedTime.ise = getThisAccessedTime\: Sesi\u00F3n ya invalidada
 standardSession.getLastAccessedTime.ise = getLastAccessedTime\: Sesi\u00F3n ya invalidada
 standardSession.getId.ise = getId\: Sesi\u00F3n ya invalidada
 standardSession.getMaxInactiveInterval.ise = getMaxInactiveInterval\: Sesi\u00F3n ya invalidada
index b7bcb80..207fb9f 100644 (file)
@@ -56,6 +56,7 @@ standardSession.isNew.ise=isNew: Session already invalidated
 standardSession.getAttribute.ise=getAttribute: Session already invalidated
 standardSession.getAttributeNames.ise=getAttributeNames: Session already invalidated
 standardSession.getCreationTime.ise=getCreationTime: Session already invalidated
+standardSession.getThisAccessedTime.ise=getThisAccessedTime: Session already invalidated
 standardSession.getLastAccessedTime.ise=getLastAccessedTime: Session already invalidated
 standardSession.getId.ise=getId: Session already invalidated
 standardSession.getMaxInactiveInterval.ise=getMaxInactiveInterval: Session already invalidated
index f406d67..d886780 100644 (file)
@@ -55,6 +55,7 @@ standardSession.isNew.ise = isNew\: La Sesi\u00F3n ya ha sido invalidada
 standardSession.getAttribute.ise = getAttribute\: La Sesi\u00F3n ya ha sido invalidada
 standardSession.getAttributeNames.ise = getAttributeNames\: La Sesi\u00F3n ya ha sido invalidada
 standardSession.getCreationTime.ise = getCreationTime\: La Sesi\u00F3n ya ha sido invalidada
+standardSession.getThisAccessedTime.ise = getThisAccessedTime\: La Sesi\u00F3n ya ha sido invalidada
 standardSession.getLastAccessedTime.ise = getLastAccessedTime\: La Sesi\u00F3n ya ha sido invalidada
 standardSession.getId.ise = getId\: La Sesi\u00F3n ya ha sido invalidada
 standardSession.getMaxInactiveInterval.ise = getMaxInactiveInterval\: La Sesi\u00F3n ya ha sido invalidada
index e274b5e..58f2842 100644 (file)
@@ -54,6 +54,7 @@ standardSession.isNew.ise="isNew": Session d
 standardSession.getAttribute.ise="getAttribute": Session déjà invalidée
 standardSession.getAttributeNames.ise="getAttributeNames": Session déjà invalidée
 standardSession.getCreationTime.ise="getCreationTime": Session déjà invalidée
+standardSession.getThisAccessedTime.ise="getThisAccessedTime": Session d\u00E9j\u00E0 invalid\u00E9e
 standardSession.getLastAccessedTime.ise="getLastAccessedTime": Session d\u00E9j\u00E0 invalid\u00E9e
 standardSession.getId.ise=getId: Session déjà invalidée
 standardSession.getMaxInactiveInterval.ise="getMaxInactiveInterval": Session déjà invalidée
index 995f542..d270172 100644 (file)
@@ -56,6 +56,7 @@ standardSession.isNew.ise=isNew: \u30bb\u30c3\u30b7\u30e7\u30f3\u306f\u65e2\u306
 standardSession.getAttribute.ise=getAttribute: \u30bb\u30c3\u30b7\u30e7\u30f3\u306f\u65e2\u306b\u7121\u52b9\u5316\u3055\u308c\u3066\u3044\u307e\u3059
 standardSession.getAttributeNames.ise=getAttributeNames: \u30bb\u30c3\u30b7\u30e7\u30f3\u306f\u65e2\u306b\u7121\u52b9\u5316\u3055\u308c\u3066\u3044\u307e\u3059
 standardSession.getCreationTime.ise=getCreationTime: \u30bb\u30c3\u30b7\u30e7\u30f3\u306f\u65e2\u306b\u7121\u52b9\u5316\u3055\u308c\u3066\u3044\u307e\u3059
+standardSession.getThisAccessedTime.ise=getThisAccessedTime: \u30bb\u30c3\u30b7\u30e7\u30f3\u306f\u65e2\u306b\u7121\u52b9\u5316\u3055\u308c\u3066\u3044\u307e\u3059
 standardSession.getLastAccessedTime.ise=getLastAccessedTime: \u30bb\u30c3\u30b7\u30e7\u30f3\u306f\u65e2\u306b\u7121\u52b9\u5316\u3055\u308c\u3066\u3044\u307e\u3059
 standardSession.getId.ise=getId: \u30bb\u30c3\u30b7\u30e7\u30f3\u306f\u65e2\u306b\u7121\u52b9\u5316\u3055\u308c\u3066\u3044\u307e\u3059
 standardSession.getMaxInactiveInterval.ise=getMaxInactiveInterval: \u30bb\u30c3\u30b7\u30e7\u30f3\u306f\u65e2\u306b\u7121\u52b9\u5316\u3055\u308c\u3066\u3044\u307e\u3059
index 731ed99..7bcffce 100644 (file)
@@ -1228,13 +1228,30 @@ public abstract class ManagerBase implements Manager, MBeanRegistration {
         s.expire();
     }
 
+    public long getThisAccessedTimestamp( String sessionId ) {
+        Session s=(Session)sessions.get(sessionId);
+        if(s== null)
+            return -1 ;
+        return s.getThisAccessedTime();
+    }
+
+    public String getThisAccessedTime( String sessionId ) {
+        Session s=(Session)sessions.get(sessionId);
+        if( s==null ) {
+            if(log.isInfoEnabled())
+                log.info("Session not found " + sessionId);
+            return "";
+        }
+        return new Date(s.getThisAccessedTime()).toString();
+    }
+
     public long getLastAccessedTimestamp( String sessionId ) {
         Session s=(Session)sessions.get(sessionId);
         if(s== null)
             return -1 ;
         return s.getLastAccessedTime();
     }
-  
+
     public String getLastAccessedTime( String sessionId ) {
         Session s=(Session)sessions.get(sessionId);
         if( s==null ) {
index 1d72210..f5970c9 100644 (file)
@@ -432,6 +432,32 @@ public class StandardSession
      * session, as the number of milliseconds since midnight, January 1, 1970
      * GMT.  Actions that your application takes, such as getting or setting
      * a value associated with the session, do not affect the access time.
+     * This one gets updated whenever a request starts.
+     */
+    public long getThisAccessedTime() {
+
+        if (!isValidInternal()) {
+            throw new IllegalStateException
+                (sm.getString("standardSession.getThisAccessedTime.ise"));
+        }
+
+        return (this.thisAccessedTime);
+    }
+
+    /**
+     * Return the last client access time without invalidation check
+     * @see #getThisAccessedTime().
+     */
+    public long getThisAccessedTimeInternal() {
+        return (this.thisAccessedTime);
+    }
+
+    /**
+     * Return the last time the client sent a request associated with this
+     * session, as the number of milliseconds since midnight, January 1, 1970
+     * GMT.  Actions that your application takes, such as getting or setting
+     * a value associated with the session, do not affect the access time.
+     * This one gets updated whenever a request finishes.
      */
     public long getLastAccessedTime() {