Howdy,

>Reading the servlet spec raised a couple of thoughts about http session

The servlet spec v2.4, I hope?

>Should I write a patch for these?

Not yet.

>"SRV.7.6 Last Accessed Times
>The getLastAccessedTime method of the HttpSession interface allows a
>servlet
>to determine the last time the session was accessed before the current
>request. The session is considered to be accessed when a request that
is
>part
>of the session is first handled by the servlet container."

See the JavaDoc for this method in the 2.4 servlet spec: it's not the
same as what you quoted above.  It's much cleaner, and tomcat implements
it exactly and correctly.

>Thought #2
>
>If the session is created by the current request, the
>session.getLastAccessedTime() returns the session creation time. Should
it
>return 0 instead? I'd find it a bit less incorrect.

I consider creation as a special type of access, and therefore I think
tomcat's behavior is correct.  Does the spec say otherwise?  I also
don't care much for "a bit less incorrect" -- if the spec gives leeway
to the container implementation, we need to have a very good reason to
change current behavior (thereby affecting many users who may rely on
it).

>"SRV.7.5 Session Timeouts
>The session invalidation will not take effect until all servlets using
that
>session have exited the service method."
>
>Tomcat does nothing to ensure this.
>
>To reproduce, set session timeout to 3mins and put the following code
to
>service method:
>
>HttpSession session = request.getSession();
>Thread.sleep(200 * 1000L); // a long operation =)
>session.getLastAccessedTime();
>
>->IllegalStateException is thrown

That one is interesting.  Are you sure the session has been invalidated
by tomcat and there's no other code running in your webapp that may have
caused this?

Yoav Shapira



This e-mail, including any attachments, is a confidential business communication, and 
may contain information that is confidential, proprietary and/or privileged.  This 
e-mail is intended only for the individual(s) to whom it is addressed, and may not be 
saved, copied, printed, disclosed or used by anyone else.  If you are not the(an) 
intended recipient, please immediately delete this e-mail from your computer system 
and notify the sender.  Thank you.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to