Problema com Filter e ActionListenerImpl

Pessoal estou tendo dificuldade com uma aplicação web e se algum pudesse me auxiliar eu ficarei muito grato…

Minha aplicação roda com JSF1.2 e Hibernate.

Eu tenho um filtro na minha aplicação para controlar as sessoes do hibernate. Ate ai blz…O fikltro é executado em toda requisição e se houver problema é feito rolback. Abaixo o codigo do filtro:

public class HibernateSessionFilter implements Filter{

	public void doFilter(ServletRequest req, ServletResponse res,
			FilterChain fc) throws IOException, ServletException {
		
		HibernateUtil.openSession();
		try{
			HibernateUtil.currentSession().beginTransaction();
			fc.doFilter(req, res);
			HibernateUtil.currentSession().getTransaction().commit();
		}catch(Exception e){
			HibernateUtil.currentSession().getTransaction().rollback();
			e.printStackTrace();
			throw new ServletException(e);
		}finally{
			HibernateUtil.closeCurrentSession();
		}
	}

Ok ate ai blz…
porem eu tenho um ActionListenerImpl que server para capturar exceções e redirecionar para uma outra pagina

public class ExceptionHandler extends ActionListenerImpl{
	
	@Override
	public void processAction(ActionEvent event)
			throws AbortProcessingException {
		
		// Obtem o contexto JSF
		FacesContext context = FacesContext.getCurrentInstance();

		try {
			// Executa o método da classe Pai
			super.processAction(event);
		
		} catch (Exception e) {
			// Se ocorrer um erro inesperado, exibe a mensagem abaixo
			context.addMessage("erros",
					new FacesMessage(FacesMessage.SEVERITY_FATAL,
							e.getLocalizedMessage(), null));
			
			// Redireciona para a pagina de erro.
			context.getApplication().getNavigationHandler().handleNavigation(
					context, null, "ERROR");
                        throw new AbortProcessingException(e.getMessage());
		}
	}
	

O que ocorre é q qnd gerada a exceção o listenner pega o erroe por mais q eu o lance novamente o meu filtro nunca recebe a excecao gerada e ai nunca da o rolback.

Se algum souber como solucionar ou se alguem ja utilizou um controle das sessoes do hibernate no listenner por favor se manifeste.

Deu uma estudada no fluxo e creio que da forma que montei não vai rolar os 2 trabalharem juntos…

Sendo assim mudei para redirecionar pelo web.xml

O problema agora é que so consigo redirecionar para uma pagina jsp, porem tenho q redirecionar para uma jsf e recebo essa exceção:

Caused by: javax.faces.application.ViewExpiredException: viewId:/error.jsf - View /error.jsf could not be restored.
	at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:187)
	at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)

se aguem puder me ajudar ficarei grato…