(TRINIDAD-2555)
java.lang.NullPointerException in SimpleSelectOneRenderer with javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL enabled
diff --git a/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SimpleSelectManyRenderer.java b/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SimpleSelectManyRenderer.java
index 7ef4712..aaa4f2a 100644
--- a/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SimpleSelectManyRenderer.java
+++ b/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SimpleSelectManyRenderer.java
@@ -523,7 +523,7 @@
       int[] indices = new int[values.length];
       for (int i = 0; i < values.length; i++)
       {
-        indices[i] = SimpleSelectOneRenderer.__getIndex(values[i], selectItemList);
+        indices[i] = SimpleSelectOneRenderer.__getIndex(context, values[i], selectItemList);
       }
 
       // And sort it, but only if it's not reorderable
diff --git a/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SimpleSelectOneRenderer.java b/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SimpleSelectOneRenderer.java
index 3a71556..3254295 100644
--- a/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SimpleSelectOneRenderer.java
+++ b/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SimpleSelectOneRenderer.java
@@ -32,6 +32,7 @@
 
 import org.apache.myfaces.trinidad.bean.FacesBean;
 import org.apache.myfaces.trinidad.bean.PropertyKey;
+import org.apache.myfaces.trinidad.component.UIXEditableValue;
 import org.apache.myfaces.trinidad.component.UIXSelectOne;
 import org.apache.myfaces.trinidad.context.FormData;
 import org.apache.myfaces.trinidad.context.RenderingContext;
@@ -212,7 +213,7 @@
 
     List<SelectItem> selectItems = getSelectItems(component, converter, true);
 
-    int index = __getIndex(submittedValue, selectItems);
+    int index = __getIndex(context, submittedValue, selectItems);
     if (index < 0)
       return null;
 
@@ -409,11 +410,12 @@
   /**
    * Convert a stringified index into an index, with range-checking.
    */
-  static int __getIndex(
+  static int __getIndex(FacesContext     context,
     Object submittedValue,
     List<SelectItem> selectItems)
   {
-    if ("".equals(submittedValue))
+    if ((submittedValue == null && UIXEditableValue.shouldInterpretEmptyStringSubmittedValuesAsNull(context))
+          || "".equals(submittedValue))
       return -1;
 
     try
@@ -556,7 +558,7 @@
     // have to turn it into an int and range-check it
     if ((submittedValue != null) && !valuePassThru)
     {
-      return __getIndex(submittedValue, selectItems);
+      return __getIndex(context, submittedValue, selectItems);
     }
     // Figure out the current value, whether it's submitted or not
     else