-
Bug
-
Resolution: Done
-
Minor
-
JBossAS-3.2.6 Final, JBossAS-3.2.7 Final, JBossAS-4.0.1 SP1, JBossAS-4.0.2 Final, JBossAS-4.0.3 Final, JBossAS-4.0.3 SP1, JBossAS-3.2.8 Final, JBossAS-3.2.8.SP1, JBossAS-4.0.4.GA
-
None
-
Low
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.