code: public synchronized void close()
     {
  
        if (closed)
        {
           throw new IllegalStateException("Session provider already closed");
        }
  
        closed = true;
  
        for (ExtendedSession session : (ExtendedSession[])cache.values().toArray(
           new ExtendedSession[cache.values().size()]))
           session.logout();
  
        // the cache already empty (logout listener work, see onCloseSession())
        // just to be sure
        cache.clear();
     }
docs: Calls logout() method for all cached sessions.
  
  Session will be removed from cache by the listener (this provider) via
  ExtendedSession.logout().