Erro no h:selectOneMenu com enum

Boa tarde :slight_smile: !!
To montando um form web com alguns combos que são construidos a partir de um Enum da seguinte forma:

public enum ExpressionsToSetupCamps {
    intupText, multipleChoice, selection, 	
    field, radioOrCheck, list, menu;
	
    private String[] keys = {
		"itemIntupText",
		"itemMultipleChoice",
		"itemSelection",
		"itemField",
		"itemRadioOrCheck",
		"itemList",
		"itemMenu"
    };
	
    public String toResourceKey() {
        return keys[this.ordinal()];
    }

    public static ExpressionsToSetupCamps getExpressionsToSetupCamps(String value) {
        if (value == null) {
        	throw new RuntimeException("valor null!");
        }
        int ordinal = Integer.parseInt(value);        
        switch (ordinal) {
	        case 0: return intupText;
	        case 1: return multipleChoice;
	        case 2: return selection;
	        case 3: return field;
	        case 4: return radioOrCheck;
	        case 5: return list;
	        case 6: return menu;	
	        default:
	            throw new RuntimeException("Ordinal sem referencia com ExpressionsToSetupCamps!");
        }
    }	
}

Os combos recebem uma lista construida a partir de um controlador central que recebe um intervalo referente ao enum acima:

protected List<SelectItem> createSelectList(Enum enum1, Enum enum2) {
        ResourceBundle bundle = ResourceBundle.getBundle("form_bundle"); 
        
        EnumSet<? extends Enum> enumSet = EnumSet.range(enum1, enum2);
        List<SelectItem> list = new ArrayList<SelectItem>();
        for (Enum enumType : enumSet) {
            SelectItem selectItem = new SelectItem();
            String key = ((ExpressionsToSetupCamps)enumType).toResourceKey();          
            
            selectItem.setLabel(bundle.getString(key));
            selectItem.setValue("" + enumType.ordinal());
            list.add(selectItem);
        }
        return list;
    }

Construção das listas com base no metodo acima:

{
    	selectItemsType = createSelectList(
        		ExpressionsToSetupCamps.intupText, ExpressionsToSetupCamps.selection);
    	selectItemsField = createSelectList(
        		ExpressionsToSetupCamps.field, ExpressionsToSetupCamps.menu);
}

O codigo jsf fica assim:

<h:outputText value="#{attributeItem.model.field}" rendered="#{!attributeItem.editMode}" />
<h:selectOneMenu value="#{attributeItem.model.field}" rendered="#{attributeItem.editMode}" styleClass="input" >
        <f:selectItems value="#{selectItemControl.selectItemsField}" />
</h:selectOneMenu>

Um detalhe, o atributo #{attributeItem.model.field} é um Enum do mesmo tipo do mostrado la em cima e que é convertido da seguinte forma:

public class ExpressionsToSetupCampsConverter extends Converter {
    public Object getAsObject(FacesContext context, UIComponent component,
        String value) throws ConverterException {
    	ExpressionsToSetupCamps type = 
    		ExpressionsToSetupCamps.getExpressionsToSetupCamps(value);
        return type;
    }

    public String getAsString(FacesContext context, UIComponent component,
        Object object) throws ConverterException {
        if (object instanceof String) {
            return (String) object;
        }

        Enum type = (Enum) object;
        int index = type.ordinal();

        return "" + index;
    }
}

<converter>
  <converter-for-class>br.com.inovasoft.dto.ExpressionsToSetupCamps</converter-for-class>
  <converter-class>br.com.inovasoft.web.converter.ExpressionsToSetupCampsConverter</converter-class>
 </converter>

A renderização da página acontece sem problemas, os campos do tipo h:selectOneMenu são renderizados com o texto expecificado no resourceBundler de forma correta.
O problema ocorre quando se executa alguma outra ação no form que gere processamento no server como um h:commandLink, ou h:commandButton, a seguinte mensagem de erro aparece:

    * j_id_jsp_1825541450_2:j_id_jsp_1825541450_22:0:j_id_jsp_1825541450_39: Validation Error: Value is not valid
    * j_id_jsp_1825541450_2:j_id_jsp_1825541450_22:0:j_id_jsp_1825541450_48: Validation Error: Value is not valid 

pensei que poderia ser algum problema no conversor mas o debug entra, converte de forma correta e retorna o objeto certo mas logo apos sair do converter esse erro é exibido :shock: .
Não sei qual o tipo de erro que possa ser esse por isso pesso socorro.
Por favor, caso alguem ja tenha passado pelo mesmo tipo de problema gostaria que me explica-se o que fez para solucionar pos eu to batendo cabeça e ate agora nada.

Obrigado e desde já agradeço … :!:

Hum, não consegui corrigir pos isso tive que alterar o atribudo que recebe o valor vindo do combo de enum para string…
:frowning:

att,