Urgente - Erro: Unexpected error restoring state for component with id j_idt3

Ao clicar na paginação do dataTable acontece esse erro:

WARNING: Não foi possível encontrar o componente com a ID data na exibição.
javax.faces.FacesException: Unexpected error restoring state for component with id j_idt3.  Cause: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0.
	at com.sun.faces.application.view.StateManagementStrategyImpl$1.visit(StateManagementStrategyImpl.java:273)
	at com.sun.faces.component.visit.FullVisitContext.invokeVisitCallback(FullVisitContext.java:151)
	at javax.faces.component.UIComponent.visitTree(UIComponent.java:1485)
	at javax.faces.component.UIComponent.visitTree(UIComponent.java:1496)
	at com.sun.faces.component.visit.VisitUtils.doFullNonIteratingVisit(VisitUtils.java:75)
	at com.sun.faces.application.view.StateManagementStrategyImpl.restoreView(StateManagementStrategyImpl.java:257)
	at com.sun.faces.application.StateManagerImpl.restoreView(StateManagerImpl.java:181)
	at com.sun.faces.application.view.ViewHandlingStrategy.restoreView(ViewHandlingStrategy.java:123)
	at com.sun.faces.application.view.FaceletViewHandlingStrategy.restoreView(FaceletViewHandlingStrategy.java:448)
	at com.sun.faces.application.view.MultiViewHandler.restoreView(MultiViewHandler.java:148)
	at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:187)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)

A pagina

<?xml version="1.0" encoding="UTF-8"?>
<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"
	xmlns:p="http://primefaces.prime.com.tr/ui">

<ui:composition template="/templates/interna.xhtml">

	<ui:define name="titulo">
    	Piloto Web
	</ui:define>
	<ui:define name="corpo">
		<h:form id="j_idt37" acceptcharset="ISO-8859-1">

			<p:panel id="panelParametros" header="Pesquisar pessoa"
				style="margin-bottom:10px;">

				<h:panelGrid columns="4">

					<h:outputLabel for="nome" value="Nome:" />
					<p:inputText id="nome" Label="Nome"
						value="#{pessoaBean.pessoa.nome}" size="40" />

					<h:outputLabel for="data" value="Data nascimento:" />
					<p:calendar id="dataNascimento"
						value="#{pessoaBean.pessoa.dataNascimento}" pattern="dd/MM/yyyy"
						locale="pt_BR" navigator="true" showOn="button" readOnly="true"
						maxLength="0" />

					<h:outputLabel for="sexo" value="Sexo:" />
					<h:selectOneRadio id="sexo" value="#{pessoaBean.pessoa.sexo}">
						<f:selectItem itemValue="M" itemLabel="Masculino" />
						<f:selectItem itemValue="F" itemLabel="Feminino" />
					</h:selectOneRadio>

					<h:outputText for="idioma" value="Idioma:" />
					<h:selectManyCheckbox id="idioma"
						value="#{pessoaBean.selectedIdiomas}">
						<f:selectItems value="#{pessoaBean.idiomas}" />
					</h:selectManyCheckbox>

					<h:outputLabel for="email" value="e-Mail:" />
					<p:inputText id="email" label="e-Mail" size="50" maxlength="50"
						value="#{pessoaBean.pessoa.email}">
					</p:inputText>

					<h:outputLabel for="telefone" value="Telefone:" />
					<p:inputMask mask="(99) 999-9999" id="telefone" Label="Telefone"
						value="#{pessoaBean.pessoa.telefone}" maxlength="10" />

					<h:outputLabel for="endereco" value="Endereço:" />
					<p:inputText id="endereco" Label="Endereco" size="50"
						maxlength="30" value="#{pessoaBean.endereco.endereco}" />

					<h:outputLabel for="cep" value="CEP:" />
					<p:inputMask mask="99999-999" id="cep" Label="CEP"
						value="#{pessoaBean.endereco.cep}" />

					<h:outputLabel for="estado" value="Estado:" />
					<h:selectOneMenu id="estado" value="#{pessoaBean.estado.codigo}">
						<f:selectItem itemValue="0" itemLabel="Selecione..." />
						<f:selectItems value="#{pessoaBean.estados}" />
						<f:ajax event="change" listener="#{pessoaBean.listarCidades}"
							render="cidade" />
					</h:selectOneMenu>

					<h:outputLabel for="cidade" value="Cidade:" />
					<h:selectOneMenu id="cidade" value="#{pessoaBean.cidade.codigo}">
						<f:selectItem itemValue="" itemLabel="Selecione..." />
						<f:selectItems value="#{pessoaBean.comboCidade}" />
					</h:selectOneMenu>

				</h:panelGrid>

			</p:panel>
             
             			<h:commandButton action="#{pessoaBean.buscarValor}" value="Pesquisar" >
			<f:ajax execute="@form" render=":j_idt37 :formresultado" />
			</h:commandButton>

			<p:commandButton action="#{pessoaBean.novo}" value="Nova Pessoa" />
			<br/><br/>	
&lt;/h:form&gt;
&lt;h:form id="formresultado" acceptcharset="ISO-8859-1"&gt;
			&lt;p:panel id="exibirRegistros" header="Registros de pessoas" style="margin-bottom:10px;"&gt; 

				&lt;p:dataTable var="pes" value="#{pessoaBean.pessoas}"
					 rows="3" paginator="true"
					emptyMessage="Nenhum registro encontrado com os critérios definidos"&gt;
					&lt;f:facet name="header"&gt;Listagem de pessoas&lt;/f:facet&gt;
					&lt;f:facet name="footer"&gt;Final da lista de pessoas&lt;/f:facet&gt;
					&lt;p:column&gt;
						&lt;f:facet name="header"&gt;&lt;/f:facet&gt;
						&lt;h:commandLink style="color: blue"
							action="#{pessoaBean.obterPessoa}" value="Alterar"&gt;
							&lt;f:setPropertyActionListener target="#{pessoaBean.pessoa.codigo}"
								value="#{pes.codigo}" /&gt;
						&lt;/h:commandLink&gt;
					&lt;/p:column&gt;

					&lt;p:column&gt;
						&lt;f:facet name="header"&gt;&lt;/f:facet&gt;
						&lt;p:commandLink style="color: blue"
							onclick="return confirm('Tem certeza que deseja excluir?');"
							action="#{pessoaBean.excluir}" value="Excluir"&gt;
							&lt;f:setPropertyActionListener target="#{pessoaBean.pessoa.codigo}"
								value="#{pes.codigo}" /&gt;
						&lt;/p:commandLink&gt;
					&lt;/p:column&gt;

					&lt;p:column sortBy="#{pes.nome}"&gt;
						&lt;f:facet name="header"&gt;
							&lt;h:outputText value="Nome" /&gt;
						&lt;/f:facet&gt;
						&lt;h:outputText value="#{pes.nome}" /&gt;
					&lt;/p:column&gt;
					&lt;p:column&gt;
						&lt;f:facet name="header"&gt;
							&lt;h:outputText value="e-Mail" /&gt;
						&lt;/f:facet&gt;
						&lt;h:outputText value="#{pes.email}" /&gt;
					&lt;/p:column&gt;
					&lt;p:column&gt;
						&lt;f:facet name="header"&gt;
							&lt;h:outputText value="Telefone" /&gt;
						&lt;/f:facet&gt;
						&lt;h:outputText value="#{pes.telefone}" /&gt;
					&lt;/p:column&gt;

				&lt;/p:dataTable&gt;

			&lt;/p:panel&gt;
		&lt;/h:form&gt;
	&lt;/ui:define&gt;
&lt;/ui:composition&gt;
&lt;/html&gt;

Preciso entregar esse estudo pra empresa e o JSF não pode me decepcionar

Provavelmente vc possui alguma Lista no ManagedBean, que o index está sendo acessado não existe para o tamanho da lista.
Poste seu ManagedBean.

package br.com.nomedaempresa.projetopiloto.apresentacao;



import java.util.ArrayList;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.event.ActionEvent;  
import javax.faces.model.SelectItem;
import javax.faces.context.FacesContext;  
import br.com.nomedaempresa.projetopiloto.model.*;
import br.com.nomedaempresa.projetopiloto.negocio.*;
import java.util.Map;
import java.util.HashMap;

@ManagedBean(name = "pessoaBean")
@SessionScoped
public class PessoaBean {
	Pessoa pessoa;
	Estado estado;
	Idioma idioma;
	Cidade cidade;
	Endereco endereco;

	private List&lt;SelectItem&gt; estados;
	private List&lt;String&gt; selectedIdiomas;	
	private Map&lt;String,Integer&gt; idiomas;

	private List&lt;SelectItem&gt; comboCidade;
	private List&lt;Pessoa&gt; pessoas;

	public PessoaBean() {
		pessoa = new Pessoa();
		cidade = new Cidade();
		estado = new Estado();
		cidade.setEstado(new Estado());
		idioma = new Idioma();
		endereco = new Endereco();

		pessoas = new ArrayList&lt;Pessoa&gt;();

		getEstados();
		getIdiomas();

		//PessoaBO pessoaBO = new PessoaBO();
		//this.pessoas = pessoaBO.listar(pessoa);
	}



	public Map&lt;String, Integer&gt; getIdiomas(){
		if(this.idiomas == null){
			IdiomaBO idiomaBO = new IdiomaBO();
			this.idiomas = new HashMap&lt;String, Integer&gt;();
			for(Idioma item : idiomaBO.listar()){
				this.idiomas.put(item.getNome(), item.getCodigo());
			}
		}
		return idiomas;
		// Para vertical use a tag &lt;h:selectManyCheckbox layout="pageDirection"&gt;
		// Para vertical use a tag &lt;p:selectOneRadio layout="custom"&gt;  
	}

	public List&lt;SelectItem&gt; getEstados(){
		if(this.estados == null){
			EstadoBO estadoBO = new EstadoBO();
			this.estados = new ArrayList&lt;SelectItem&gt;();
			for(Estado item : estadoBO.listar()) {				
				this.estados.add(new SelectItem(item.getCodigo(),item.getNome()));		
			}
		}
		return estados;
	}

	public String listarCidades() {
		CidadeBO cidadeBO = new CidadeBO();
		this.comboCidade = new ArrayList&lt;SelectItem&gt;();
		if(!this.estado.getCodigo().equals(0)){
			this.cidade.setEstado(this.estado);
			for(Cidade item : cidadeBO.listar(cidade)){
				this.comboCidade.add(new SelectItem(item.getCodigo(),item.getNome()));
			}
		}
		return null;
		//desabilitar o combo cidades nao funciona a validação disabled="#{empty pessoaBean.comboCidade}"
	}
	public void setPessoas(List&lt;Pessoa&gt; pessoas) {
		this.pessoas = pessoas;
	}

	public String salvar(ActionEvent actionEvent){

		try{

			this.cidade.setEstado(estado);
			this.endereco.setCidade(cidade);
			this.pessoa.setEndereco(endereco);

			List&lt;Idioma&gt; lista = new ArrayList&lt;Idioma&gt;();
			for (int i = 0; i &lt; this.selectedIdiomas.size(); i++) {
				Idioma idioma = new Idioma();
				String x = (String) this.selectedIdiomas.get(i);
				idioma.setCodigo(new Integer(x));
				lista.add(idioma);
			}

			this.pessoa.setIdiomas(lista);

			this.endereco.setPessoa(pessoa);

			PessoaBO pessoaBO = new PessoaBO();
			pessoaBO.salvar(pessoa);

			this.pessoa = new Pessoa();
			this.endereco = new Endereco();
			this.idioma = new Idioma();
			this.idiomas = null;
			this.selectedIdiomas = null;		
			this.cidade = new Cidade();
			this.comboCidade = null;
			this.estado = new Estado();
			//this.pessoas = pessoaBO.listar(this.pessoa);
			FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO,&quot;Registro Salvo com Sucesso.&quot;, &quot;&quot;));

		}catch (Exception e) {
			FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_FATAL,&quot;Erro: &quot;+e.getMessage(), &quot;&quot;));
			System.out.println(&quot;Erro: &quot; + e.getMessage());
		}

		return null;
	}
	public String excluir(){
		PessoaBO pessoaBO = new PessoaBO();
		pessoaBO.excluir(pessoa);
		this.pessoas.remove(this.pessoa);
		return &quot;listarPessoa&quot;;
	}
	public String obterPessoa(){
		PessoaBO pessoaBO = new PessoaBO();
		this.pessoa = pessoaBO.obterPessoa(pessoa);
		return &quot;cadastroPessoa&quot;;
	}
	public String alterar(){
		PessoaBO pessoaBO = new PessoaBO();
		pessoaBO.atualizar(pessoa);
		pessoa = new Pessoa();
		this.pessoas = pessoaBO.listar(this.pessoa);
		return &quot;listarPessoa&quot;;
	}
	public String novo(){
		this.pessoa = new Pessoa();
		this.pessoas = new ArrayList&lt;Pessoa&gt;();
		return "novaPessoa";
	}
	public String listarPessoa(){
		this.pessoa = new Pessoa();
		this.pessoas = new ArrayList&lt;Pessoa&gt;();
		return "listarPessoa";
	}

	public String buscarValor(){ 
		PessoaBO pessoaBO = new PessoaBO();
		this.pessoas = pessoaBO.listar(this.pessoa);  
		return null;   
	} 
	public String getDizerBemVindo(){
		if("".equals(this.pessoa.getNome()) || this.pessoa.getNome() ==null){
			return "";
		}else{
			return "Bem-Vindo " + this.pessoa.getNome();
		}
	}


	public Cidade getCidade() {
		return cidade;
	}

	public void setCidade(Cidade cidade) {
		this.cidade = cidade;
	}

	public List&lt;SelectItem&gt; getComboCidade() {
		return comboCidade;
	}

	public void setComboCidade(List&lt;SelectItem&gt; comboCidade) {
		this.comboCidade = comboCidade;
	}

	public Idioma getIdioma() {
		return idioma;
	}

	public void setIdioma(Idioma idioma) {
		this.idioma = idioma;
	}

	public Pessoa getPessoa() {
		return pessoa;
	}

	public void setPessoa(Pessoa pessoa) {
		this.pessoa = pessoa;
	}

	public List&lt;Pessoa&gt; getPessoas() {

		return this.pessoas;
	}

	public Estado getEstado() {
		return estado;
	}

	public void setEstado(Estado estado) {
		this.estado = estado;
	}

	public Endereco getEndereco() {
		return endereco;
	}

	public void setEndereco(Endereco endereco) {
		this.endereco = endereco;
	}

	public void setEstados(List&lt;SelectItem&gt; estados) {
		this.estados = estados;
	}
	public void setIdiomas(Map&lt;String, Integer&gt; idiomas) {
		this.idiomas = idiomas;
	}



	public List&lt;String&gt; getSelectedIdiomas() {
		return selectedIdiomas;
	}



	public void setSelectedIdiomas(List&lt;String&gt; selectedIdiomas) {
		this.selectedIdiomas = selectedIdiomas;
	}
}

Você só instanciou a lista “Pessoas” mas não existe valores para ela. Quando clica na paginação adivinha o que acontece?
IndexOutOfBoundsException.

tente popular a lista pessoa.

Resolveu. Muito obrigado