Пример #1
0
 protected void waitForLogout() {
   long start = System.currentTimeMillis();
   Set<Session> loggedOnSessions;
   while (!(loggedOnSessions = getLoggedOnSessions()).isEmpty()) {
     try {
       Thread.sleep(100L);
     } catch (InterruptedException e) {
       log.error(e.getMessage(), e);
     }
     final long elapsed = System.currentTimeMillis() - start;
     Iterator<Session> sessionItr = loggedOnSessions.iterator();
     while (sessionItr.hasNext()) {
       Session session = sessionItr.next();
       if (elapsed >= session.getLogoutTimeout() * 1000L) {
         try {
           session.disconnect("Logout timeout, force disconnect", false);
         } catch (IOException e) {
           log.error(e.getMessage(), e);
         }
         sessionItr.remove();
       }
     }
     // Be sure we don't look forever
     if (elapsed > 60000L) {
       log.warn("Stopping session logout wait after 1 minute");
       break;
     }
   }
 }