Erro de validação em selectOneMenu do JSF

Oi gente, tudo bem

tenho um h:selectOneMenu que uso para chamar o resultado para outro h:selectOneMenu, o codigo esta abaixo, no caso meu primeiro ‘selectOneMenu’ tem uma lista com Estados e o segundo ‘selectOneMenu’ tem uma lista com cidades, ou seja, ao clicar em um estado, ele mostra quais cidades estão disponiveis para escolha, ele faz a busca atraves do valueChangeListener e devolve os valores corretamente, porém ele acusa o seguinte erro

Formulario:pesCidade: Erro de validação: o valor não é válido 

pagina.xhtml

<h:form id="Formulario">
   <br/>

   <h:selectOneMenu valueChangeListener="#{theSelectBean.mudaLista}" onchange="submit()" id="pesEstado" value="#{theSelectBean.nomeestado}">
      <f:selectItems value="#{listaEstado.suaLista}" var="u" itemLabel="#{u.est_nom}" itemValue="#{u.est_nom}" />
   </h:selectOneMenu>

                <br/><br/>

   <h:selectOneMenu id="pesCidade" value="#{gravaCidade.cid_nome}" >
      <f:selectItems value="#{theSelectBean.cidades}" var="u" itemLabel="#{u.cid_nom}" itemValue="#{u.cid_nom}" />
   </h:selectOneMenu>

                <br/><br/>

</h:form>

TheSelectBean.java

@ManagedBean
public class TheSelectBean {

    private String nome;
    private String nomeestado;
    private Integer idestado;    
    private String sexDesc;
    private HtmlInputText sexDescCmp;
    private String capt;
    private HtmlInputText capturador;
    private List cidades;
    private HtmlSelectOneMenu selectonemenu;

    public void mudaLista(ValueChangeEvent event) {

        System.out.println("String: " + event.getNewValue().toString());
        
        Session sessao = CriadorDeSessaoNovo.getSession();

        Criteria listagem_query = sessao.createCriteria(Cidade.class).
                createAlias("estado", "es").
                addOrder(Order.asc("es.est_nom")).
                add(Restrictions.eq("es.est_nom", event.getNewValue().toString() ).                
                ignoreCase());
        setCidades(listagem_query.list());        

        sessao.close();
        FacesContext.getCurrentInstance().renderResponse();
    }
//setters e getters

Alguém tem alguma ideia de como corrigir isso?

Sim:

http://www.rponte.com.br/2008/02/01/selectonemenu-converter-erro-de-validacao/
http://www.rponte.com.br/2008/07/26/entity-converters-pra-da-e-vender/

Eu ja havia visto estes dois links antes, porém eu tentei implementar os metodos equals e hashCode usando as proprias ferramentas automaticas que o netbeans possui e não funcionou

ps: o selectOneMenu é ativado através da função onchange, eu esqueci de dizer, mas a primeira vez q eu mudo o selectOneMenu, ou seja seleciono uma cidade, ele não da erro, somente quando eu faço isso pela segunda vez… q coisa louca!