You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2003/12/05 10:28:55 UTC
cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session StandardManager.java
remm 2003/12/05 01:28:55
Modified: catalina/src/share/org/apache/catalina/session
StandardManager.java
Log:
- isValid already expires sessions, so backgroundProcess shouldn't call
expire again.
- Bug 25234, submitted by Paul Harvey.
Revision Changes Path
1.16 +5 -11 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/StandardManager.java
Index: StandardManager.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/StandardManager.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- StandardManager.java 29 Nov 2003 18:06:35 -0000 1.15
+++ StandardManager.java 5 Dec 2003 09:28:55 -0000 1.16
@@ -813,13 +813,7 @@
for (int i = 0; i < sessions.length; i++) {
StandardSession session = (StandardSession) sessions[i];
if (!session.isValid()) {
- try {
- expiredSessions++;
- session.expire();
- } catch (Throwable t) {
- log.error(sm.getString
- ("standardManager.expireException"), t);
- }
+ expiredSessions++;
}
}
long timeEnd = System.currentTimeMillis();
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org
Re: cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session
StandardManager.java
Posted by Remy Maucherat <re...@apache.org>.
Amy Roh wrote:
>>Amy Roh wrote:
>>
>>>remm@apache.org wrote:
>>There doesn't seem many methods changing isValid to false. invalidate is
>>another one, and it calls expire. As long as all the methods which
>>invalidate the session right away expire them, it should be ok I think.
>
> IMHO, not calling expire() because no method changes isValid to false
> doesn't seem like a clean approach. Moreover,
Well, where else to expire on access if the maximum interval was reached
? I like it (but I didn't do it). Does it actually cause a bug ?
> PersistentManagerBase.processExpires() keeps expire() making it not
> consistent.
Maybe. However, this was because in 4.1.x, isValid didn't expire the
session, and this code wasn't updated. When I merged all background
processing threads, I simply did a cut & paste of the code.
Rémy
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org
Re: cvs commit:
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session
StandardManager.java
Posted by Amy Roh <am...@apache.org>.
> Amy Roh wrote:
> > remm@apache.org wrote:
> >
> >> remm 2003/12/05 01:28:55
> >>
> >> Modified: catalina/src/share/org/apache/catalina/session
> >> StandardManager.java
> >> Log:
> >> - isValid already expires sessions, so backgroundProcess shouldn't
call
> >> expire again.
> >
> > isValid doesn't *always* expire session.
> >
> > StandardSession.isValid() -
> >
> > public boolean isValid() {
> >
> > if (this.expiring){
> > return true;
> > }
> >
> > if (!this.isValid ) {
> > *** return false;
> > }
> >
> > if (maxInactiveInterval >= 0) {
> > long timeNow = System.currentTimeMillis();
> > int timeIdle = (int) ((timeNow - lastAccessedTime) / 1000L);
> > if (timeIdle >= maxInactiveInterval) {
> > *** expire(true);
> > }
> > }
> >
> > return (this.isValid);
> > }
> >
> > If StandardSession.isValid is false, then we want to expire the session.
> > However, isValid() call doesn't get to expire(true) and just return
> > false. So removing session.expire() from
> > StandardManager.processExpires() won't work all the time. Am I missing
> > something?
>
> There doesn't seem many methods changing isValid to false. invalidate is
> another one, and it calls expire. As long as all the methods which
> invalidate the session right away expire them, it should be ok I think.
IMHO, not calling expire() because no method changes isValid to false
doesn't seem like a clean approach. Moreover,
PersistentManagerBase.processExpires() keeps expire() making it not
consistent.
Amy
>
> Rémy
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org
Re: cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session
StandardManager.java
Posted by Remy Maucherat <re...@apache.org>.
Amy Roh wrote:
> remm@apache.org wrote:
>
>> remm 2003/12/05 01:28:55
>>
>> Modified: catalina/src/share/org/apache/catalina/session
>> StandardManager.java
>> Log:
>> - isValid already expires sessions, so backgroundProcess shouldn't call
>> expire again.
>
> isValid doesn't *always* expire session.
>
> StandardSession.isValid() -
>
> public boolean isValid() {
>
> if (this.expiring){
> return true;
> }
>
> if (!this.isValid ) {
> *** return false;
> }
>
> if (maxInactiveInterval >= 0) {
> long timeNow = System.currentTimeMillis();
> int timeIdle = (int) ((timeNow - lastAccessedTime) / 1000L);
> if (timeIdle >= maxInactiveInterval) {
> *** expire(true);
> }
> }
>
> return (this.isValid);
> }
>
> If StandardSession.isValid is false, then we want to expire the session.
> However, isValid() call doesn't get to expire(true) and just return
> false. So removing session.expire() from
> StandardManager.processExpires() won't work all the time. Am I missing
> something?
There doesn't seem many methods changing isValid to false. invalidate is
another one, and it calls expire. As long as all the methods which
invalidate the session right away expire them, it should be ok I think.
Rémy
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org
Re: cvs commit:
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session
StandardManager.java
Posted by Amy Roh <am...@apache.org>.
remm@apache.org wrote:
> remm 2003/12/05 01:28:55
>
> Modified: catalina/src/share/org/apache/catalina/session
> StandardManager.java
> Log:
> - isValid already expires sessions, so backgroundProcess shouldn't call
> expire again.
isValid doesn't *always* expire session.
StandardSession.isValid() -
public boolean isValid() {
if (this.expiring){
return true;
}
if (!this.isValid ) {
*** return false;
}
if (maxInactiveInterval >= 0) {
long timeNow = System.currentTimeMillis();
int timeIdle = (int) ((timeNow - lastAccessedTime) / 1000L);
if (timeIdle >= maxInactiveInterval) {
*** expire(true);
}
}
return (this.isValid);
}
If StandardSession.isValid is false, then we want to expire the session.
However, isValid() call doesn't get to expire(true) and just return
false. So removing session.expire() from
StandardManager.processExpires() won't work all the time. Am I missing
something?
Thanks,
Amy
> - Bug 25234, submitted by Paul Harvey.
>
> Revision Changes Path
> 1.16 +5 -11 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/StandardManager.java
>
> Index: StandardManager.java
> ===================================================================
> RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/StandardManager.java,v
> retrieving revision 1.15
> retrieving revision 1.16
> diff -u -r1.15 -r1.16
> --- StandardManager.java 29 Nov 2003 18:06:35 -0000 1.15
> +++ StandardManager.java 5 Dec 2003 09:28:55 -0000 1.16
> @@ -813,13 +813,7 @@
> for (int i = 0; i < sessions.length; i++) {
> StandardSession session = (StandardSession) sessions[i];
> if (!session.isValid()) {
> - try {
> - expiredSessions++;
> - session.expire();
> - } catch (Throwable t) {
> - log.error(sm.getString
> - ("standardManager.expireException"), t);
> - }
> + expiredSessions++;
> }
> }
> long timeEnd = System.currentTimeMillis();
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org