LANG-1289" type="fix" dev="ggregory">JavaVersion class depends on Apache
Commons Math class NumberUtils.
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 63a94a3..092d4c5 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -57,6 +57,7 @@
<action issue="LANG-1070" type="fix" dev="pschumacher" due-to="Paul Pogonyshev">ArrayUtils#add confusing example in javadoc</action>
<action issue="LANG-1271" type="fix" dev="pschumacher" due-to="Pierre Templier">StringUtils#isAnyEmpty and #isAnyBlank should return false for an empty array</action>
<action issue="LANG-1155" type="fix" dev="pschumacher" due-to="Saif Asif, Thiago Andrade">Add StringUtils#unwrap</action>
+ <action issue="LANG-1289" type="fix" dev="ggregory">JavaVersion class depends on Apache Commons Math class NumberUtils</action>
<action issue="LANG-1034" type="add" dev="pschumacher" due-to="Yathos UG">Add support for recursive comparison to EqualsBuilder#reflectionEquals</action>
<action issue="LANG-740" type="add" dev="pschumacher" due-to="James Sawle">Implementation of a Memomizer</action>
<action issue="LANG-1258" type="add" dev="pschumacher" due-to="IG, Grzegorz Rożniecki">Add ArrayUtils#toStringArray method</action>
diff --git a/src/main/java/org/apache/commons/lang3/JavaVersion.java b/src/main/java/org/apache/commons/lang3/JavaVersion.java
index 8c992f2..964ec4a 100644
--- a/src/main/java/org/apache/commons/lang3/JavaVersion.java
+++ b/src/main/java/org/apache/commons/lang3/JavaVersion.java
@@ -16,8 +16,6 @@
*/
package org.apache.commons.lang3;
-import org.apache.commons.lang3.math.NumberUtils;
-
/**
* <p>An enum representing all the versions of the Java specification.
* This is intended to mirror available values from the
@@ -220,11 +218,45 @@
if (value.contains(".")) {
final String[] toParse = value.split("\\.");
if (toParse.length >= 2) {
- return NumberUtils.toFloat(toParse[0] + '.' + toParse[1], defaultReturnValue);
+ return toFloat(toParse[0] + '.' + toParse[1], defaultReturnValue);
}
} else {
- return NumberUtils.toFloat(value, defaultReturnValue);
+ return toFloat(value, defaultReturnValue);
}
return defaultReturnValue;
}
+
+ /**
+ * <p>Convert a <code>String</code> to a <code>float</code>, returning a
+ * default value if the conversion fails.</p>
+ *
+ * <p>If the string <code>str</code> is <code>null</code>, the default
+ * value is returned.</p>
+ *
+ * <pre>
+ * NumberUtils.toFloat(null, 1.1f) = 1.0f
+ * NumberUtils.toFloat("", 1.1f) = 1.1f
+ * NumberUtils.toFloat("1.5", 0.0f) = 1.5f
+ * </pre>
+ *
+ * @param str the string to convert, may be <code>null</code>
+ * @param defaultValue the default value
+ * @return the float represented by the string, or defaultValue
+ * if conversion fails
+ *
+ * <p>
+ * Copied from Apache Commons Math.
+ * </p>
+ */
+ private static float toFloat(final String str, final float defaultValue) {
+ if (str == null) {
+ return defaultValue;
+ }
+ try {
+ return Float.parseFloat(str);
+ } catch (final NumberFormatException nfe) {
+ return defaultValue;
+ }
+ }
+
}