You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2010/12/10 14:54:16 UTC

svn commit: r1044359 - in /tomcat/trunk: java/org/apache/catalina/ java/org/apache/catalina/manager/ java/org/apache/catalina/session/ webapps/docs/

Author: markt
Date: Fri Dec 10 13:54:16 2010
New Revision: 1044359

URL: http://svn.apache.org/viewvc?rev=1044359&view=rev
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=50448
Regression caused by http://svn.apache.org/viewvc?view=revision&revision=1036281

Modified:
    tomcat/trunk/java/org/apache/catalina/Session.java
    tomcat/trunk/java/org/apache/catalina/manager/DummyProxySession.java
    tomcat/trunk/java/org/apache/catalina/session/ManagerBase.java
    tomcat/trunk/java/org/apache/catalina/session/StandardSession.java
    tomcat/trunk/webapps/docs/changelog.xml

Modified: tomcat/trunk/java/org/apache/catalina/Session.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/Session.java?rev=1044359&r1=1044358&r2=1044359&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/Session.java (original)
+++ tomcat/trunk/java/org/apache/catalina/Session.java Fri Dec 10 13:54:16 2010
@@ -90,6 +90,13 @@ public interface Session {
 
 
     /**
+     * Return the creation time for this session, bypassing the session validity
+     * checks.
+     */
+    public long getCreationTimeInternal();
+
+
+    /**
      * Set the creation time for this session.  This method is called by the
      * Manager when an existing Session instance is reused.
      *

Modified: tomcat/trunk/java/org/apache/catalina/manager/DummyProxySession.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/manager/DummyProxySession.java?rev=1044359&r1=1044358&r2=1044359&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/manager/DummyProxySession.java (original)
+++ tomcat/trunk/java/org/apache/catalina/manager/DummyProxySession.java Fri Dec 10 13:54:16 2010
@@ -64,6 +64,11 @@ public class DummyProxySession implement
     }
 
     @Override
+    public long getCreationTimeInternal() {
+        return 0;
+    }
+
+    @Override
     public String getId() {
         return sessionId;
     }

Modified: tomcat/trunk/java/org/apache/catalina/session/ManagerBase.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/session/ManagerBase.java?rev=1044359&r1=1044358&r2=1044359&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/session/ManagerBase.java (original)
+++ tomcat/trunk/java/org/apache/catalina/session/ManagerBase.java Fri Dec 10 13:54:16 2010
@@ -799,7 +799,8 @@ public abstract class ManagerBase extend
         // the manager because it is being persisted - update the expired stats
         if (update) {
             long timeNow = System.currentTimeMillis();
-            int timeAlive = (int) ((timeNow - session.getCreationTime())/1000);
+            int timeAlive =
+                (int) (timeNow - session.getCreationTimeInternal())/1000;
             updateSessionMaxAliveTime(timeAlive);
             expiredSessions.incrementAndGet();
             SessionTiming timing = new SessionTiming(timeNow, timeAlive);

Modified: tomcat/trunk/java/org/apache/catalina/session/StandardSession.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/session/StandardSession.java?rev=1044359&r1=1044358&r2=1044359&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/session/StandardSession.java (original)
+++ tomcat/trunk/java/org/apache/catalina/session/StandardSession.java Fri Dec 10 13:54:16 2010
@@ -1102,6 +1102,16 @@ public class StandardSession implements 
 
 
     /**
+     * Return the time when this session was created, in milliseconds since
+     * midnight, January 1, 1970 GMT, bypassing the session validation checks.
+     */
+    @Override
+    public long getCreationTimeInternal() {
+        return this.creationTime;
+    }
+
+
+    /**
      * Return the ServletContext to which this session belongs.
      */
     @Override

Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1044359&r1=1044358&r2=1044359&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Fri Dec 10 13:54:16 2010
@@ -126,6 +126,10 @@
         <bug>50413</bug>: Ensure 304 responses are not returned when using
         static files as error pages. (markt)
       </fix>
+      <fix>
+        <bug>50448</bug>: Fix possible <code>IllegalStateException</code>
+        caused by recent session management refactoring. (markt)
+      </fix>
     </changelog>
   </subsection>
   <subsection name="Coyote">



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org