This is an automated email from the ASF dual-hosted git repository.

derjan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/empire-db.git


The following commit(s) were added to refs/heads/master by this push:
     new e2ae15c  EMPIREDB-321
e2ae15c is described below

commit e2ae15cd3b6720df44602fa30b9d95e82bbd02e0
Author: Jan Glaubitz <[email protected]>
AuthorDate: Mon Dec 9 08:46:05 2019 +0100

    EMPIREDB-321
---
 .../empire/jsf2/controls/TextInputControl.java     | 34 ++++++++++++----------
 1 file changed, 19 insertions(+), 15 deletions(-)

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 776e09b..7e52065 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
@@ -177,13 +177,11 @@ public class TextInputControl extends InputControl
         // Check other types
         if (type == DataType.INTEGER)
         {
-            NumberFormat nf = NumberFormat.getIntegerInstance(ii.getLocale());
-            return parseNumber(value, nf);
+               return parseInteger(value, ii.getLocale());
         }
         if (type == DataType.DECIMAL || type == DataType.FLOAT)
         {
-            NumberFormat nf = NumberFormat.getNumberInstance(ii.getLocale());
-            return parseNumber(value, nf);
+               return parseDecimal(value, ii.getLocale());
         }
         if (type == DataType.DATE || type == DataType.DATETIME || type == 
DataType.TIMESTAMP)
         {
@@ -597,21 +595,27 @@ public class TextInputControl extends InputControl
 
     // ------- value parsing -------
 
-    protected Object parseNumber(String s, NumberFormat nf)
+    protected Object parseInteger(String value, Locale locale)
     {
-        // Try to convert
-        for (int i = 0; i < s.length(); i++)
+        NumberFormat nf = NumberFormat.getIntegerInstance();
+        // Parse String
+        try
         {
-            if (s.charAt(i) >= 'A')
-            {
-                throw new NumberFormatException("Not a number: " + s);
-            }
-        }
+            return nf.parseObject(value);
+        } catch (ParseException pe) {
+            throw new NumberFormatException("Not a number: " + value + " 
Exception: " + pe.toString());
+        }        
+    }
+
+    protected Object parseDecimal(String value, Locale locale)
+    {
+        NumberFormat nf = NumberFormat.getNumberInstance(locale);
         // Parse String
-        try {
-            return nf.parseObject(s);
+        try
+        {
+            return nf.parseObject(value);
         } catch (ParseException pe) {
-            throw new NumberFormatException("Not a number: " + s + " 
Exception: " + pe.toString());
+            throw new NumberFormatException("Not a number: " + value + " 
Exception: " + pe.toString());
         }
     }
 

Reply via email to