Fix bad error message from NumberFormat.parse.
Patch by: jat
Review by: jlabanca
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@6414 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/i18n/client/NumberFormat.java b/user/src/com/google/gwt/i18n/client/NumberFormat.java
index 53172d6..89b03b0 100644
--- a/user/src/com/google/gwt/i18n/client/NumberFormat.java
+++ b/user/src/com/google/gwt/i18n/client/NumberFormat.java
@@ -1076,8 +1076,12 @@
}
}
- // parseDouble could throw NumberFormatException, let it do it.
- ret = Double.parseDouble(normalizedText.toString());
+ // parseDouble could throw NumberFormatException, rethrow with correct text.
+ try {
+ ret = Double.parseDouble(normalizedText.toString());
+ } catch (NumberFormatException e) {
+ throw new NumberFormatException(text);
+ }
ret = ret / scale;
return ret;
}
diff --git a/user/test/com/google/gwt/i18n/client/NumberFormat_en_Test.java b/user/test/com/google/gwt/i18n/client/NumberFormat_en_Test.java
index 8a9acb0..0122875 100644
--- a/user/test/com/google/gwt/i18n/client/NumberFormat_en_Test.java
+++ b/user/test/com/google/gwt/i18n/client/NumberFormat_en_Test.java
@@ -286,6 +286,15 @@
assertEquals("-1,014.34 X", str);
}
+ public void testParseNotANumber() {
+ try {
+ double d = NumberFormat.getDecimalFormat().parse("blue");
+ fail("Expected a NumberFormatException");
+ } catch (NumberFormatException e) {
+ assertEquals("blue", e.getMessage());
+ }
+ }
+
public void testPercent() {
String str;