Problema com Hibernate session.update(obj)

Boa noite a todos, tenho a seguinte situação:

Botão para salvar o meu formulário de alteração do cliente:

<h:panelGrid columns="3" cellpadding="3"> <p:commandButton id="btSalvar" value="Salvar" actionListener="#{clienteMB.atualizar}" update="mensagens" onclick="saveDialog.show()" oncomplete="saveDialog.hide()" image="ui-icon ui-icon-disk"/> </h:panelGrid>

Método do meu managebean para chamar o BO de atualização do cliente:

public void atualizar(){ this.getCliente().setPessoa(getPessoa()); Boolean b = super.validaTelefones(); if(b == true){ FacesContextUtil.mensagemAtencao("Atenção: telefone e/ou celular obrigatório!"); return; } else { if(this.cliente.getPessoa().getEstado().equalsIgnoreCase("Selecione")){ FacesContextUtil.mensagemAtencao("Atenção: selecione o Estado!"); return; } } setValoresSemMascara(); b = clienteBO.atualizar(this.getCliente()); if(b == true){ FacesContextUtil.mensagemSucesso("Cliente atualizado com sucesso!"); } else FacesContextUtil.mensagemErro("Erro ao tentar atualizar este cliente! Favor entrar em contato com o analista responsável!"+ "\nCausa: "+clienteBO.getCausa()); }

BO para processar as regras e chamar o DAO:

public Boolean atualizar(Cliente c){ try{ clienteDAO.atualizar(c); return true; } catch (Exception e) { e.printStackTrace(); this.setCausa(e.getCause().toString()); } return false; }

HibernateDAO genérico:

[code]@Override
public void atualizar(T bean) {
	session.update(bean);		
}
[/code]

Os métodos são todos chamados corretamente assim como os objetos são populados, o meu problema é que após o método atualizar(T bean) ser “supostamente” executado nada acontece, ou seja, os valores no banco de dados não estão sofrendo update, tanto é que nada aparece na console do programa, nenhum erro nem mesmo a query com o update. Alguém sabe o que pode ser isto? Desde já agradeço pela ajuda!

Descobri o porque, minha clase para o controle do ciclo de vida do JSF não está funcionando corretamente, só gostaira de saber porque! No mais resolvi o meu problema fazendo um commit na minha transação.

minha classe para o controle de sessão:

[code]public class ControleFases implements PhaseListener{

@Override
public void beforePhase(PhaseEvent fase)
{	
	if(fase.getPhaseId().equals(PhaseId.RESTORE_VIEW)){
		System.out.println("INICIO DA SESSÃO HIBERNATE - RESTORE_VIEW");
		Session session = HibernateUtil.getSessionFactory().openSession();
		session.beginTransaction();
		FacesContextUtil.setRequestSession(session);
	}
	
}

@Override
public void afterPhase(PhaseEvent fase) 
{
	if(fase.getPhaseId().equals(PhaseId.RENDER_RESPONSE))
	{
		Session session = FacesContextUtil.getRequestSession();
		try
		{
			session.getTransaction().commit();
			System.out.println("FIM DA SESSÃO HIBERNATE - RENDER_RESPONSE");
		} catch (Exception e) 
		{
			System.out.println("Erro no commit da transação! ");
			System.out.println(e.getMessage());
			e.printStackTrace();
			if(session.getTransaction().isActive())
			{
				session.getTransaction().rollback();
			}
		} finally 
		{
			session.close();
		}
	}
}

@Override
public PhaseId getPhaseId() {
	return PhaseId.ANY_PHASE;
}

}
[/code]

Dai quando eu recupero a sessão em alguma outra classe como nos managebean ela não vem já aberta e com a transação em aberto tbm, alguém sabe o porque?