Lukas,

Check the difference in the javadoc for HttpSessionListener between servlet specs 2.3 (J2EE 1.3) and 2.4 (J2EE 1.4). In 2.4 containers the session should (as I read it) still be valid in sessionDestroyed(...).

Jon

J2EE 1.3: http://java.sun.com/j2ee/sdk_1.3/techdocs/api/index.html
J2EE 1.4: http://java.sun.com/j2ee/1.4/docs/api/index.html

Shapira, Yoav wrote:

Howdy,
By the time sessionDestroyed is call, the session has been invalidated.
That doesn't mean you can't get information about it: only certain
information ;)  HttpSession#getAttribute is clearly documented to throw
an IllegalStateException if called on an invalidated session.

If you're interested in attributes, implement an HttpSessionAttribute or
Binding listener.  In it, you will be notified when an attribute is
removed and you will be able to access its value.

Yoav Shapira
Millennium ChemInformatics



-----Original Message-----
From: Lukas Bradley [mailto:[EMAIL PROTECTED]
Sent: Wednesday, November 26, 2003 1:07 PM
To: [EMAIL PROTECTED]
Subject: HttpSessionListener in Tomcat 4.1.27 (or HttpSessionListener

in


general)

All,

When I attempt to access the HttpSession object within the
sessionDestroyed(), I get the following error.

DEBUG [StandardManager[]] (SessionListener.java:40) -

sessionDestroyed()


StandardManager[] Session event listener threw exception
java.lang.IllegalStateException: getAttribute: Session already

invalidated


      at
org.apache.catalina.session.StandardSession.getAttribute(StandardSessio

n.ja


v
a:954)
      at
org.apache.catalina.session.StandardSessionFacade.getAttribute(Standard

Sess


i
onFacade.java:171)
      at
dollars.ui.actions.DollarsAction.getUserVO(DollarsAction.java:46)
      at
dollars.ui.controllers.SessionListener.sessionDestroyed(SessionListener

.jav


a
:42)
      at
org.apache.catalina.session.StandardSession.expire(StandardSession.java

:659


)
      at
org.apache.catalina.session.StandardSession.expire(StandardSession.java

:608


)
      at
org.apache.catalina.session.StandardManager.processExpires(StandardMana

ger.


j
ava:793)
      at
org.apache.catalina.session.StandardManager.run(StandardManager.java:87

0)


at java.lang.Thread.run(Thread.java:536)

Why would the HttpSessionEvent *seem* like it should have access to the
session that has just been removed, yet not be able to access it?  Is

this


a
Tomcat problem, or does the Servlet 2.3 spec simply want you to know

that


some random session was just invalidated, but you can't get any

information


about it.

Any help appreciated.

Lukas








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



Reply via email to