Pessoal estou com um problema que é o seguinte, quando execulto meu Timer, o FacesContext fica nulo, tipo antes de entrar no Timer o FacesContext fica certinho, porem quando entro dentro do Timer o FacesContext fica nulo, alguem sabe o motivo? Abaixo segue meu código:
public void enviaPacoteACada10s() {
/* Aqui pega certinho**/
FacesContext facesContext = FacesContext.getCurrentInstance();
final GerenciarSocket gerenciarSocket = (GerenciarSocket) FacesContextUtil.getAtributoSession("gerenciarSocket");
TimerTask tarefaEnviaPacote = new TimerTask() {
/* Quando entra aqui não pega o FacesContext corretamente**/
@Override
public void run() {
try {
if (envioAutomaticoCMD10s) {
gerenciarSocket.enviaPacote(pacoteDispositivos);
}
/* Envia o pacote com os dispositivos e espera 10 segundos para enviar o pacote com as lâmpadas**/
Thread.sleep(10 * 1000);
if (envioAutomaticoCMD10s) {
gerenciarSocket.enviaPacote(pacoteLampadas);
}
/* Envia o pacote com as lâmpadas e espera 10 segundos para enviar o pacote com os dispositivos**/
Thread.sleep(10 * 1000);
} catch (InterruptedException ex) {
Logger.getLogger(GerenciamentoDispositivosMB.class.getName()).log(Level.SEVERE, "Erro ao esperar os 10 segundos para enviar o pacote com as lampadas.", ex);
}
}
};
this.temporizadorEnvioPacote.scheduleAtFixedRate(tarefaEnviaPacote, Calendar.getInstance().getTime(), 10 * 1000);
}