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());
}
}