ICEfaces
  1. ICEfaces
  2. ICE-3189

NPE in SessionDispatcher on sessionExpiry

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major 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!

        Activity

        Repository Revision Date User Message
        ICEsoft Public SVN Repository #16901 Fri Jun 13 17:51:03 MDT 2008 greg.dick ICE-3189 Fixed code preventing reentrant sessionExpiry errors
        Files Changed
        Commit graph 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 ICE-3189 Fixed code preventing reentrant sessionExpiry errors
        Files Changed
        Commit graph 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 ]
        Hide
        Greg Dick added a comment -

        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.

        Show
        Greg Dick added a comment - 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.
        Greg Dick made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Ken Fyten made changes -
        Status Resolved [ 5 ] Closed [ 6 ]

          People

          • Assignee:
            Unassigned
            Reporter:
            Greg Dick
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: