EMPIREDB-282
JSF options: allow custom text for null value
diff --git a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/InputControl.java b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/InputControl.java
index fca3d70..c3d7397 100644
--- a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/InputControl.java
+++ b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/InputControl.java
@@ -698,12 +698,13 @@
         // Lookup and Print value

         Options options = vi.getOptions();

         if (options != null && !options.isEmpty() && !hasFormatOption(vi, "nolookup"))

-        { // Check for Options

+        {   // Check for Options

             String text = options.get(value);

-            if (text != null)

+            if (StringUtils.isNotEmpty(text))

                 return vi.getText(text);

             // Error

-            InputControl.log.error("The element '" + String.valueOf(value) + "' is not part of the supplied option list.");

+            if (value!=null)

+                InputControl.log.error("The element '" + String.valueOf(value) + "' is not part of the supplied option list.");

         }

         // value

         if (value == null)

diff --git a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/RadioInputControl.java b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/RadioInputControl.java
index de2ad93..955f981 100644
--- a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/RadioInputControl.java
+++ b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/RadioInputControl.java
@@ -33,6 +33,7 @@
 import org.apache.empire.commons.ObjectUtils;

 import org.apache.empire.commons.OptionEntry;

 import org.apache.empire.commons.Options;

+import org.apache.empire.commons.StringUtils;

 import org.apache.empire.data.Column;

 import org.apache.empire.exceptions.InvalidArgumentException;

 import org.apache.empire.exceptions.UnexpectedReturnValueException;

@@ -299,12 +300,11 @@
                 if (attrValue instanceof Options)

                 { // Check for Options

                     String text = ((Options) attrValue).get(value);

-                    if (text != null)

-                    {

+                    if (StringUtils.isNotEmpty(text))

                         return vi.getText(text);

-                    }

                     // Error

-                    RadioInputControl.log.error("The element '" + String.valueOf(value) + "' is not part of the supplied option list.");

+                    if (value!=null)

+                        RadioInputControl.log.error("The element '" + String.valueOf(value) + "' is not part of the supplied option list.");

                 }

             }

         }

diff --git a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/SelectInputControl.java b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/SelectInputControl.java
index 36679ef..2a06c40 100644
--- a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/SelectInputControl.java
+++ b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/SelectInputControl.java
@@ -30,6 +30,7 @@
 import org.apache.empire.commons.ObjectUtils;

 import org.apache.empire.commons.OptionEntry;

 import org.apache.empire.commons.Options;

+import org.apache.empire.commons.StringUtils;

 import org.apache.empire.data.Column;

 import org.apache.empire.exceptions.InvalidArgumentException;

 import org.apache.empire.exceptions.UnexpectedReturnValueException;

@@ -320,10 +321,11 @@
                 if (attrValue instanceof Options)

                 {   // Check for Options

                     String text = ((Options) attrValue).get(value);

-                    if (text != null)

+                    if (StringUtils.isNotEmpty(text))

                         return vi.getText(text);

                     // Error

-                    SelectInputControl.log.error("The element '" + String.valueOf(value) + "' is not part of the supplied option list.");

+                    if (value!=null)

+                        SelectInputControl.log.error("The element '" + String.valueOf(value) + "' is not part of the supplied option list.");

                 }

             }

         }

diff --git a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/TextInputControl.java b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/TextInputControl.java
index 7e52065..cdef3b1 100644
--- a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/TextInputControl.java
+++ b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/TextInputControl.java
@@ -238,10 +238,11 @@
         if (options != null && !options.isEmpty())

         { // Check for Options

             String text = options.get(value);

-            if (text != null)

+            if (StringUtils.isNotEmpty(text))

                 return vi.getText(text);

             // Error

-            log.error("The element '" + String.valueOf(value) + "' is not part of the supplied option list.");

+            if (value!=null)

+                TextInputControl.log.error("The element '" + String.valueOf(value) + "' is not part of the supplied option list.");

         }

         // Check Value

         if (value == null)