Fixing LANG-300 (reported by Jeremy Lemaire) - 1L to 9L incorrectly throw exceptions when passed into NumberUtils.createNumber. Fixed in both the math.NumbersUtils and the deprecated NumberUtils classes.
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/lang/trunk@488819 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
868dd28444
commit
1536077409
|
@ -192,8 +192,7 @@ public final class NumberUtils {
|
||||||
case 'L' :
|
case 'L' :
|
||||||
if (dec == null
|
if (dec == null
|
||||||
&& exp == null
|
&& exp == null
|
||||||
&& isDigits(numeric.substring(1))
|
&& (numeric.charAt(0) == '-' && isDigits(numeric.substring(1)) || isDigits(numeric))) {
|
||||||
&& (numeric.charAt(0) == '-' || Character.isDigit(numeric.charAt(0)))) {
|
|
||||||
try {
|
try {
|
||||||
return createLong(numeric);
|
return createLong(numeric);
|
||||||
} catch (NumberFormatException nfe) {
|
} catch (NumberFormatException nfe) {
|
||||||
|
|
|
@ -451,8 +451,7 @@ public class NumberUtils {
|
||||||
case 'L' :
|
case 'L' :
|
||||||
if (dec == null
|
if (dec == null
|
||||||
&& exp == null
|
&& exp == null
|
||||||
&& isDigits(numeric.substring(1))
|
&& (numeric.charAt(0) == '-' && isDigits(numeric.substring(1)) || isDigits(numeric))) {
|
||||||
&& (numeric.charAt(0) == '-' || Character.isDigit(numeric.charAt(0)))) {
|
|
||||||
try {
|
try {
|
||||||
return createLong(numeric);
|
return createLong(numeric);
|
||||||
} catch (NumberFormatException nfe) {
|
} catch (NumberFormatException nfe) {
|
||||||
|
|
|
@ -1364,5 +1364,11 @@ public class NumberUtilsTest extends TestCase {
|
||||||
assertTrue(NumberUtils.FLOAT_ONE.floatValue() == 1.0f);
|
assertTrue(NumberUtils.FLOAT_ONE.floatValue() == 1.0f);
|
||||||
assertTrue(NumberUtils.FLOAT_MINUS_ONE.floatValue() == -1.0f);
|
assertTrue(NumberUtils.FLOAT_MINUS_ONE.floatValue() == -1.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testLang300() {
|
||||||
|
NumberUtils.createNumber("-1l");
|
||||||
|
NumberUtils.createNumber("01l");
|
||||||
|
NumberUtils.createNumber("1l");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue