Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 1.7
-
Fix Version/s: 1.7.1
-
Component/s: None
-
Labels:None
-
Environment:All
Description
This is in code in SessionDispatcher in the notifySessionShutdown method. There were a couple of things.
First, the code to remove the sessionID from the sessionMonitors hashmap was done after the code performed a hard session.invalidate() on the users session. This is not quite right as session invalidation immediately causes this method to be reentered from the ContextEventRepeater -> SessionDispatcher$Listener path that Mircea added. If the sessionID is not removed from the hashmap until the finally block, this creates the reentrancy loop.
Second, the return statement in the guard code is inside a Log.isDebugEnabled test!
First, the code to remove the sessionID from the sessionMonitors hashmap was done after the code performed a hard session.invalidate() on the users session. This is not quite right as session invalidation immediately causes this method to be reentered from the ContextEventRepeater -> SessionDispatcher$Listener path that Mircea added. If the sessionID is not removed from the hashmap until the finally block, this creates the reentrancy loop.
Second, the return statement in the guard code is inside a Log.isDebugEnabled test!
Activity
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #16901 | Fri Jun 13 17:51:03 MDT 2008 | greg.dick | |
Files Changed | ||||
MODIFY
/icefaces/trunk/icefaces/core/src/com/icesoft/faces/webapp/http/servlet/SessionDispatcher.java
|
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #16902 | Fri Jun 13 17:57:34 MDT 2008 | greg.dick | |
Files Changed | ||||
MODIFY
/icefaces/branches/icefaces-1.7/icefaces/core/src/com/icesoft/faces/webapp/http/servlet/SessionDispatcher.java
|
Greg Dick
created issue -
Greg Dick
made changes -
Field | Original Value | New Value |
---|---|---|
Fix Version/s | 1.7.1 [ 10122 ] |
Greg Dick
made changes -
Status | Open [ 1 ] | Resolved [ 5 ] |
Resolution | Fixed [ 1 ] |
Ken Fyten
made changes -
Status | Resolved [ 5 ] | Closed [ 6 ] |
I fixed the problems identified in the case. The method is still reentered when session.invalidate() is called, but the guard code correctly returns because the hashmap is correctly emptied of the sessionID.