[resolvido] javax.faces.application.ViewExpiredException

Boa noite,

Pessoal, estou começando com JSF (não estou usando primefaces) e tenho me deparado com o erro:

javax.faces.application.ViewExpiredException: viewId:/index.xhtml - A exibição de /index.xhtml não pôde ser restaurada.

Já entendi como ele funciona e porque acontece, porém implementei um filtro para tratar exceções como segue:

[code]public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {

	HttpServletResponse httpResponse = (HttpServletResponse) response;
	HttpServletRequest httpRequest = (HttpServletRequest) request;
	
	try{
		chain.doFilter(request, response);
	}catch(javax.faces.application.ViewExpiredException e){
		request.setAttribute("erro", e.getMessage());
		httpResponse.sendRedirect(httpRequest.getContextPath()+"error.xhtml");
		
	}catch(Exception e1){
		request.setAttribute("erro", e1.getMessage());
		httpResponse.sendRedirect(httpRequest.getContextPath()+"error.xhtml");
		return;
	}
	
	
}[/code]

Mas não vejo meu filtro tratar nenhum erro no JSF, muito menos o citado no título. Gostaria de saber uma maneira eficaz de tratar esse erro e como meu JSF pode reconhecer meu filtro de erros. A impressão que tenho é que o JSF pega os erros antes do filtro e trata, mas não trata todos os erros e não chama meu filtro quando algum erro não tratado “escapa”.

Segue o código da página de erro:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
	  xmlns:ui="http://java.sun.com/jsf/facelets"
	  xmlns:h="http://java.sun.com/jsf/html"
	  xmlns:f="http://java.sun.com/jsf/core">

<h:head>
	<h:link rel="stylesheet" type="text/css" hreflang="estilo.css" />
	<title><h:outputText value="#{msg['page.error.title']}"/></title>
</h:head>	  
<h:body>
<div id="container">	
	<h1><h:outputText value="#{msg['page.error.mensagem']}"/></h1>
	<br />
	<br />
	<h3><h:outputText value="#{erro}"/></h3>
	<br />
	<br />
	<h:graphicImage id="robo" url="./robo/robo.jpg" />

</div>
</h:body>  
</html>

Faltava a declaração do filtro no web.xml e da página de erro.