/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package Threads;
import Beans.BeanCaddy;
import java.io.Serializable;
import java.sql.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
public class ThreadTimeout implements Runnable, Serializable{
Date dateCreation = null;
HttpSession session = null;
ServletContext sc = null;
public ThreadTimeout(HttpSession session, ServletContext sc) {
this.session = session;
this.sc = sc;
}
@Override
public void run() {
System.out.println("Thread TimeOUT démarré !");
while(true){
try {
Thread.sleep(1000 * 60 * 20); // 20 minutes
timeOut();
} catch (InterruptedException ex) {
Logger.getLogger(ThreadTimeout.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
private void timeOut() {
System.out.println("TIMEOUT !");
String idSession = session.getId();
this.sc.removeAttribute(idSession);
session.removeAttribute("beanCaddy");
BeanCaddy beanCaddy = new BeanCaddy();
this.sc.setAttribute(idSession, beanCaddy);
session.setAttribute("beanCaddy", beanCaddy);
}
}