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;
+      }
+    }
+
 }