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;