summaryrefslogtreecommitdiffstats
path: root/libjava/java/lang/natDouble.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/java/lang/natDouble.cc')
-rw-r--r--libjava/java/lang/natDouble.cc12
1 files changed, 11 insertions, 1 deletions
diff --git a/libjava/java/lang/natDouble.cc b/libjava/java/lang/natDouble.cc
index b0b24a7547c..329795d3e21 100644
--- a/libjava/java/lang/natDouble.cc
+++ b/libjava/java/lang/natDouble.cc
@@ -161,9 +161,19 @@ jdouble
java::lang::Double::parseDouble(jstring str)
{
int length = str->length();
+
while (length > 0
&& Character::isWhitespace(str->charAt(length - 1)))
length--;
+
+ // The String could end with a f/F/d/D which is valid but we don't need.
+ if (length > 0)
+ {
+ jchar last = str->charAt(length-1);
+ if (last == 'f' || last == 'F' || last == 'd' || last == 'D')
+ length--;
+ }
+
jsize start = 0;
while (length > 0
&& Character::isWhitespace(str->charAt(start)))
@@ -184,7 +194,7 @@ java::lang::Double::parseDouble(jstring str)
if (endptr == data + blength)
return val;
}
- throw new NumberFormatException;
+ throw new NumberFormatException(str);
}
void
OpenPOWER on IntegriCloud