HttpSession isNew() inaccurate if the 2nd request for the session is on different server
----------------------------------------------------------------------------------------
Key: JBAS-3528
URL:
http://jira.jboss.com/jira/browse/JBAS-3528
Project: JBoss Application Server
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Clustering, Web (Tomcat) service
Affects Versions: JBossAS-4.0.4.GA, JBossAS-3.2.8.SP1, JBossAS-3.2.8 Final,
JBossAS-4.0.3 SP1, JBossAS-4.0.3 Final, JBossAS-4.0.2 Final, JBossAS-4.0.1 SP1,
JBossAS-3.2.7 Final, JBossAS-3.2.6 Final
Reporter: Brian Stansberry
Assigned To: Brian Stansberry
Priority: Minor
Fix For: JBossAS-4.0.5.CR1
Tomcat sets a session's isNew field to false as part of Request.recyle() processing,
which occurs *after* the session has replicated. The effect of this is the replicated
session has the wrong value. If the second request for the session goes to another node,
a call to isNew() will be inaccurate.
If there was more than one request on the 1st node, there is no problem. Any subsequent
request on the 2nd node will also return the correct value.
Simple fix is to set isNew to false whenever a session is deserialized. For 5.0 we can
just skip serializing this field and set it to false in readObject; for binary
compatibility must serialize it in 4.0.x.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira