commons-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From s...@apache.org
Subject svn commit: r1461697 - /commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/math/NumberUtils.java
Date Wed, 27 Mar 2013 16:29:25 GMT
Author: sebb
Date: Wed Mar 27 16:29:25 2013
New Revision: 1461697

URL: http://svn.apache.org/r1461697
Log:
Document why double exponent (e and E) seems to work even though the index will be wrong

Modified:
    commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/math/NumberUtils.java

Modified: commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/math/NumberUtils.java
URL: http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/math/NumberUtils.java?rev=1461697&r1=1461696&r2=1461697&view=diff
==============================================================================
--- commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/math/NumberUtils.java
(original)
+++ commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/math/NumberUtils.java
Wed Mar 27 16:29:25 2013
@@ -478,12 +478,14 @@ public class NumberUtils {
         String dec;
         String exp;
         final int decPos = str.indexOf('.');
-        final int expPos = str.indexOf('e') + str.indexOf('E') + 1; // TODO assumes both
not present
+        final int expPos = str.indexOf('e') + str.indexOf('E') + 1; // assumes both not present
+        // if both e and E are present, this is caught by the checks on expPos (which prevent
IOOBE)
+        // and the parsing which will detect if e or E appear in a number due to using the
wrong offset
 
         if (decPos > -1) { // there is a decimal point
 
             if (expPos > -1) { // there is an exponent
-                if (expPos < decPos || expPos > str.length()) {
+                if (expPos < decPos || expPos > str.length()) { // prevents double
exponent causing IOOBE
                     throw new NumberFormatException(str + " is not a valid number.");
                 }
                 dec = str.substring(decPos + 1, expPos);
@@ -493,7 +495,7 @@ public class NumberUtils {
             mant = str.substring(0, decPos);
         } else {
             if (expPos > -1) {
-                if (expPos > str.length()) {
+                if (expPos > str.length()) { // prevents double exponent causing IOOBE
                     throw new NumberFormatException(str + " is not a valid number.");
                 }
                 mant = str.substring(0, expPos);



Mime
View raw message