Erro java.util.NoSuchElementException

Pessoal estou fazendo um <h:selectOneMenu> , e quando tento selecionar o objeto trago pela lista ele me apresenta o seguinte erro .

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)
	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:154)
	org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:260)
	org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:366)
	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:493)

root cause

java.util.NoSuchElementException
	javax.faces.component.SelectItemsIterator.next(SelectItemsIterator.java:117)
	javax.faces.component.SelectItemsIterator.next(SelectItemsIterator.java:144)
	javax.faces.component.SelectItemsIterator.next(SelectItemsIterator.java:49)
	javax.faces.component.UISelectOne.matchValue(UISelectOne.java:164)
	javax.faces.component.UISelectOne.validateValue(UISelectOne.java:137)
	javax.faces.component.UIInput.validate(UIInput.java:867)
	javax.faces.component.UIInput.executeValidate(UIInput.java:1065)
	javax.faces.component.UIInput.processValidators(UIInput.java:666)
	javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1033)
	org.ajax4jsf.component.UIAjaxForm.processValidators(UIAjaxForm.java:80)
	org.ajax4jsf.component.AjaxViewRoot$3.invokeContextCallback(AjaxViewRoot.java:435)
	org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:235)
	org.ajax4jsf.component.AjaxViewRoot.processValidators(AjaxViewRoot.java:451)
	com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:100)
	com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
	com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:154)
	org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:260)
	org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:366)
	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:493)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.16 logs.

O Código está assim :

Controle

public List<SelectItem> getListar() throws Exception {
        ad.abrirConexao();
        List site = ad.listarParametrosPorClasse(parametroViter);
        ArrayList<SelectItem> listarParametros = new ArrayList<SelectItem>();
        for (int i = 0; i < site.size(); i++) {
            SelectItem parametro1 = new SelectItem();
            ParametroViter e = (ParametroViter) site.get(i);
            parametro1.setValue(e.getFundos().getId());
            parametro1.setLabel(e.getFundos().getNmFundo());
            listarParametros.add(parametro1);
        }

        ad.fecharConexao();
        return listarParametros;
}

DAO

 public ArrayList<ParametroViter> listarParametrosPorClasse(ParametroViter objeto) throws SQLException {
        ArrayList lista = new ArrayList<ParametroViter>();
        Statement stmt = conexao.createStatement();
        ParametroViter parametroViter = null;
        Fundos fundos = null;
        ResultSet rst = null;
        try {
            query = "SELECT DISTINCT \"SMFTB019_PARAMETROS_VITER\".\"FUNDOS_SMFTB019\", \"SMFTB010_FUNDOS\".\"NOME_FUNDO_SMFTB010\", " +
                    "\"SMFTB019_PARAMETROS_VITER\".\"DESCRICAO_RISCO_SMFTB019\"" +
                    "FROM  \"SMFTB019_PARAMETROS_VITER\" " +
                    "INNER JOIN \"SMFTB010_FUNDOS\" ON \"SMFTB019_PARAMETROS_VITER\".\"FUNDOS_SMFTB019\"=\"SMFTB010_FUNDOS\".\"PK_SMFTB010\" " +
                    "WHERE \"CLASSE_CVM_SMFTB019\" = " + objeto.getClasseCVM().getCodigo() + " ";

            rst = stmt.executeQuery(query);

            while (rst.next()) {
                parametroViter = new ParametroViter();
                fundos = new Fundos();
                fundos.setId(rst.getInt(1));
                fundos.setNmFundo(rst.getString(2));
                parametroViter.setDescricao(rst.getString(3));
                parametroViter.setFundos(fundos);
                lista.add(parametroViter);

            }
            rst.close();
            stmt.close();

        } catch (SQLException sqlex) {
            this.codMensagem = Integer.parseInt(sqlex.getSQLState());
            rst.close();
            stmt.close();
        }
        return lista;
    }

    public ParametroViter pesquisaParametroPorCodigoDoFundo(ParametroViter objeto) throws Exception {
        ParametroViter parametroViter = new ParametroViter();
        Statement stmt = conexao.createStatement();
        ResultSet rst = null;
        if(objeto == null)
            throw new Exception("O valor passado não pode ser nulo");

        try {
            query = "SELECT DISTINCT \"SMFTB019_PARAMETROS_VITER\".\"FUNDOS_SMFTB019\", \"SMFTB010_FUNDOS\".\"NOME_FUNDO_SMFTB010\", " +
                    "\"SMFTB019_PARAMETROS_VITER\".\"DESCRICAO_RISCO_SMFTB019\" "+
                    "FROM  \"SMFTB019_PARAMETROS_VITER\" " +
                    "INNER JOIN \"SMFTB010_FUNDOS\" ON \"SMFTB019_PARAMETROS_VITER\".\"FUNDOS_SMFTB019\"=\"SMFTB010_FUNDOS\".\"PK_SMFTB010\" " +
                    "WHERE \"CLASSE_CVM_SMFTB019\" = " + objeto.getFundos().getId() + " ";

            rst = stmt.executeQuery(query);
            
            while (rst.next()) {
                Fundos fundos = new Fundos();
                MovCota movCota = new MovCota();
                TaxaADM taxaADM = new TaxaADM();
                fundos.setId(rst.getInt(1));
                fundos.setNmFundo(rst.getString(2));
                parametroViter.setDescricao(rst.getString(3));
                movCota.setVlMinAplicIni(rst.getDouble(4));
                taxaADM.setTaxa(rst.getDouble(5));
                parametroViter.setFundos(fundos);
                parametroViter.setMovCota(movCota);
                parametroViter.setTaxaADM(taxaADM);
            }
            rst.close();
            stmt.close();
        } catch (SQLException sqlex) {
            this.codMensagem = Integer.parseInt(sqlex.getSQLState());
            rst.close();
            stmt.close();
        }
        return parametroViter;
    }

VISAO

<h:selectOneMenu  id="listaFundos2" value="#{ManterParametrosViter.parametroViter.fundos.id}" styleClass="edit" style="width:300px;">
      <f:selectItem itemLabel="-- Selecione o Fundo --" itemValue=""/>
      <f:selectItems value="#{ManterParametrosViter.listar}"/>
      <a4j:support id="supListaFundos2" event="onchange" reRender="frmCadastroParametrosViter"/>
</h:selectOneMenu>

EDIT - Por favor use as tags [ code ]

Pessoal,

estou com o mesmo problema… alguém pode dizer a solução?

Tô com o mesmo problema a mais de um mês… acontece esse erro quando dou submit num formulário que tem selectItems alinhados(Estado / Cidade)
Alguém por favor… já to pensando em desistir do jsf e fazer em php

Estou exatamente com o mesmo problema tambem, estou utilizando uma pickList e quando vou salvar, aparece este erro: java.util.NoSuchElementException

Gelera, passei por isso e , no meu caso eu consegui resolver tratando o escopo de Conversação do meu bean que gera os Itens da selectitens.

Estava EVENTS, alterei pra PAGE e funcionou. Não sei se é a melhor solução, mas resolveu o caso.

VLW, ESPERO TER AJUDADO.
o/