Primefaces selectOneMenu listener no se llama con objetos que no sean cadenas [duplicado]

Esta pregunta ya tiene una respuesta aquí:

Valor de configuración de error de conversión para 'Convertidor nulo' - ¿Por qué necesito un convertidor en JSF? 2 respuestas

Estoy implementando una aplicación web utilizando Jsf 2.0 y Primefaces 3.2. Me he dado cuenta de este comportamiento inesperado: tengo unselectOneMenu y uncommandButton, como a continuación

<p:selectOneMenu id="selsel" value="#{bean.myObj}">
  <f:selectItems value="#{bean.myObjList}" />
</p:selectOneMenu>
<p:commandButton id="btnid" value="Ok" actionListener="#{bean.updateSelectValues()}" />

Lo que pasa es que simyObj no es unString, laupdateSelectValues El método no se llama. No puedo ver ninguna excepción o error, simplemente no se llama. Aquí está el frijol de respaldo:

private List<MyObj> myObjList;
private MyObj myObj;
// getters and setters

public void updateSelectValues() {
  System.out.println(this.myObj);
}

El código para myObj:

public class MyObj implements Serializable {

  private static final long serialVersionUID = 1L;

  private String param1;
  private int param2;

  @Override
  public String toString() {
    StringBuilder builder = new StringBuilder();
    builder.append("MyObj [param1=");
    builder.append(this.param1);
    builder.append(", param2=");
    builder.append(this.param2);
    builder.append("]");
    return builder.toString();
  }

}

Respuestas a la pregunta(1)

Su respuesta a la pregunta