Problemas com Session

Ola Pessoal boa noite!

Bem to com uma app rodando aparentemente tudo ok
porem no log do tom cat
esta gerando uma excessão
java.lang.IllegalStateException: setAttribute: Session already invalidated
at org.apache.catalina.session.StandardSession.setAttribute(StandardSession.java:1291)
at org.apache.catalina.session.StandardSession.setAttribute(StandardSession.java:1256)
at org.apache.catalina.session.StandardSessionFacade.setAttribute(StandardSessionFacade.java:130)
at com.sun.faces.taglib.jsf_core.ViewTag.doEndTag(ViewTag.java:266)
at org.apache.jsp.Page1_jsp._jspx_meth_f_005fview_005f0(Page1_jsp.java:141)
at org.apache.jsp.Page1_jsp._jspService(Page1_jsp.java:99)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

bom não sei como finalizar ou deixar valida esta sessão tenho um link de logout quer redireciona pra outra pagina porem
creio que a sessão não esta sendo finalizada da maneira correta se alguem puder me esclarecer o que acontecendo fico agradecido

A exceção aponta que a sessão já está invalidada. Vc deve estar chamando session.invalidate() main de uma vez em uma mesma sessão.
Verifique isso.

[]´s

Ola! é veja bem vc pode me explicar por que a aplicação não trava?

outra coisa como eu posso fazer para acabar com a seção em um logout
para que o usuario ao sair não possa retorna sem login e senha?
se puder me ajudar agradeço!

Se vc postar seu código fica mais fácil de ajudar.

 public Usuario obterPorLoginSenha(String login, String senha) {
      Query qry = em.createQuery("select u from Usuario u where u.login = :param1 and u.senha = :param2");
      qry.setParameter("param1", login);
      qry.setParameter("param2", senha);
      return (Usuario) qry.getSingleResult();
  }

este é me Dao

    public Usuario obterUsuarioPorLoginSenha(String login, String senha) {
        UsuarioDao dao = new UsuarioDao();
        Usuario obj = dao.obterPorLoginSenha(login, senha);
        dao.close();
        return obj;
    }

estes eu utilizo para oberte o usuario
no Session bean eu crio um objeto do tipo usuariologado os get e sets
no Requet Crio um objeto do tipo Usuario e inicializo setUsuario(new Usuario());

na aplicação eu chamo

public String button1_action() {
        RetaguardaFocade focade = new RetaguardaFocade();
        Usuario uRq = getRequestBean1().getUsuario();
        Usuario usuario = focade.obterUsuarioPorLoginSenha(uRq.getLogin(), uRq.getSenha());
        if (usuario != null) {
            getSessionBean1().getUsuarioLogado();

        } else {
         
        }
        return "acessoliberado";



    }

assim esta o codigo como vc me aconselha a implementar o logout