You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by er...@apache.org on 2018/03/08 12:56:36 UTC

[1/2] [lang] LANG-1384: Fix NPE when version >= 11

Repository: commons-lang
Updated Branches:
  refs/heads/master 0820c4c89 -> 50ce8c44e


LANG-1384: Fix NPE when version >= 11

The fix is likely to be insufficient if the version naming scheme changes.


Project: http://git-wip-us.apache.org/repos/asf/commons-lang/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-lang/commit/cb686673
Tree: http://git-wip-us.apache.org/repos/asf/commons-lang/tree/cb686673
Diff: http://git-wip-us.apache.org/repos/asf/commons-lang/diff/cb686673

Branch: refs/heads/master
Commit: cb686673a70a6f14c35575550c48c37d19a1598b
Parents: 0820c4c
Author: Gilles Sadowski <gi...@harfang.homelinux.org>
Authored: Thu Mar 8 13:17:00 2018 +0100
Committer: Gilles Sadowski <gi...@harfang.homelinux.org>
Committed: Thu Mar 8 13:17:00 2018 +0100

----------------------------------------------------------------------
 src/main/java/org/apache/commons/lang3/JavaVersion.java     | 2 ++
 src/test/java/org/apache/commons/lang3/JavaVersionTest.java | 1 +
 2 files changed, 3 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-lang/blob/cb686673/src/main/java/org/apache/commons/lang3/JavaVersion.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/lang3/JavaVersion.java b/src/main/java/org/apache/commons/lang3/JavaVersion.java
index a074453..60258f6 100644
--- a/src/main/java/org/apache/commons/lang3/JavaVersion.java
+++ b/src/main/java/org/apache/commons/lang3/JavaVersion.java
@@ -191,6 +191,8 @@ public enum JavaVersion {
             if (Float.parseFloat(nom.substring(firstComma + 1, end)) > .9f) {
                 return JAVA_RECENT;
             }
+        } else if (v > 10) {
+            return JAVA_RECENT;
         }
         return null;
     }

http://git-wip-us.apache.org/repos/asf/commons-lang/blob/cb686673/src/test/java/org/apache/commons/lang3/JavaVersionTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/lang3/JavaVersionTest.java b/src/test/java/org/apache/commons/lang3/JavaVersionTest.java
index 4d4202c..ad28565 100644
--- a/src/test/java/org/apache/commons/lang3/JavaVersionTest.java
+++ b/src/test/java/org/apache/commons/lang3/JavaVersionTest.java
@@ -59,6 +59,7 @@ public class JavaVersionTest {
         assertEquals("1.10 failed", JAVA_RECENT, get("1.10"));
         // assertNull("2.10 unexpectedly worked", get("2.10"));
         assertEquals("Wrapper method failed", get("1.5"), getJavaVersion("1.5"));
+        assertEquals("Unhandled", JAVA_RECENT, get("11")); // LANG-1384
     }
 
     @Test


[2/2] [lang] LANG-1384: Version "11" is available.

Posted by er...@apache.org.
LANG-1384: Version "11" is available.


Project: http://git-wip-us.apache.org/repos/asf/commons-lang/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-lang/commit/50ce8c44
Tree: http://git-wip-us.apache.org/repos/asf/commons-lang/tree/50ce8c44
Diff: http://git-wip-us.apache.org/repos/asf/commons-lang/diff/50ce8c44

Branch: refs/heads/master
Commit: 50ce8c44e1601acffa39f5568f0fc140aade0564
Parents: cb68667
Author: Gilles Sadowski <gi...@harfang.homelinux.org>
Authored: Thu Mar 8 13:54:31 2018 +0100
Committer: Gilles Sadowski <gi...@harfang.homelinux.org>
Committed: Thu Mar 8 13:54:31 2018 +0100

----------------------------------------------------------------------
 .../java/org/apache/commons/lang3/JavaVersion.java |  9 +++++++++
 .../java/org/apache/commons/lang3/SystemUtils.java | 12 ++++++++++++
 .../org/apache/commons/lang3/JavaVersionTest.java  |  3 ++-
 .../org/apache/commons/lang3/SystemUtilsTest.java  | 17 +++++++++++++++++
 4 files changed, 40 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-lang/blob/50ce8c44/src/main/java/org/apache/commons/lang3/JavaVersion.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/lang3/JavaVersion.java b/src/main/java/org/apache/commons/lang3/JavaVersion.java
index 60258f6..148c99e 100644
--- a/src/main/java/org/apache/commons/lang3/JavaVersion.java
+++ b/src/main/java/org/apache/commons/lang3/JavaVersion.java
@@ -95,6 +95,13 @@ public enum JavaVersion {
     JAVA_10(10.0f, "10"),
 
     /**
+     * Java 11
+     *
+     * @since 3.8
+     */
+    JAVA_11(11.0f, "11"),
+
+    /**
      * The most recent java version. Mainly introduced to avoid to break when a new version of Java is used.
      */
     JAVA_RECENT(maxVersion(), Float.toString(maxVersion()));
@@ -180,6 +187,8 @@ public enum JavaVersion {
             return JAVA_9;
         } else if ("10".equals(nom)) {
             return JAVA_10;
+        } else if ("11".equals(nom)) {
+            return JAVA_11;
         }
         if (nom == null) {
             return null;

http://git-wip-us.apache.org/repos/asf/commons-lang/blob/50ce8c44/src/main/java/org/apache/commons/lang3/SystemUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/lang3/SystemUtils.java b/src/main/java/org/apache/commons/lang3/SystemUtils.java
index a6d9c2e..f91628a 100644
--- a/src/main/java/org/apache/commons/lang3/SystemUtils.java
+++ b/src/main/java/org/apache/commons/lang3/SystemUtils.java
@@ -985,6 +985,18 @@ public class SystemUtils {
      */
     public static final boolean IS_JAVA_10 = getJavaVersionMatches("10");
 
+    /**
+     * <p>
+     * Is {@code true} if this is Java version 11 (also 11.x versions).
+     * </p>
+     * <p>
+     * The field will return {@code false} if {@link #JAVA_VERSION} is {@code null}.
+     * </p>
+     *
+     * @since 3.8
+     */
+    public static final boolean IS_JAVA_11 = getJavaVersionMatches("11");
+
     // Operating system checks
     // -----------------------------------------------------------------------
     // These MUST be declared after those above as they depend on the

http://git-wip-us.apache.org/repos/asf/commons-lang/blob/50ce8c44/src/test/java/org/apache/commons/lang3/JavaVersionTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/lang3/JavaVersionTest.java b/src/test/java/org/apache/commons/lang3/JavaVersionTest.java
index ad28565..7a6cbe2 100644
--- a/src/test/java/org/apache/commons/lang3/JavaVersionTest.java
+++ b/src/test/java/org/apache/commons/lang3/JavaVersionTest.java
@@ -56,10 +56,11 @@ public class JavaVersionTest {
         assertEquals("1.8 failed", JAVA_1_8, get("1.8"));
         assertEquals("9 failed", JAVA_9, get("9"));
         assertEquals("10 failed", JAVA_10, get("10"));
+        assertEquals("11 failed", JavaVersion.JAVA_11, get("11"));
         assertEquals("1.10 failed", JAVA_RECENT, get("1.10"));
         // assertNull("2.10 unexpectedly worked", get("2.10"));
         assertEquals("Wrapper method failed", get("1.5"), getJavaVersion("1.5"));
-        assertEquals("Unhandled", JAVA_RECENT, get("11")); // LANG-1384
+        assertEquals("Unhandled", JAVA_RECENT, get("12")); // LANG-1384
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/commons-lang/blob/50ce8c44/src/test/java/org/apache/commons/lang3/SystemUtilsTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/lang3/SystemUtilsTest.java b/src/test/java/org/apache/commons/lang3/SystemUtilsTest.java
index b97cb81..8e5610c 100644
--- a/src/test/java/org/apache/commons/lang3/SystemUtilsTest.java
+++ b/src/test/java/org/apache/commons/lang3/SystemUtilsTest.java
@@ -29,6 +29,7 @@ import static org.apache.commons.lang3.JavaVersion.JAVA_1_7;
 import static org.apache.commons.lang3.JavaVersion.JAVA_1_8;
 import static org.apache.commons.lang3.JavaVersion.JAVA_9;
 import static org.apache.commons.lang3.JavaVersion.JAVA_10;
+import static org.apache.commons.lang3.JavaVersion.JAVA_11;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
@@ -408,6 +409,7 @@ public class SystemUtilsTest {
             assertFalse(SystemUtils.isJavaVersionAtLeast(JAVA_1_8));
             assertFalse(SystemUtils.isJavaVersionAtLeast(JAVA_9));
             assertFalse(SystemUtils.isJavaVersionAtLeast(JAVA_10));
+            assertFalse(SystemUtils.isJavaVersionAtLeast(JAVA_11));
         } else if (SystemUtils.IS_JAVA_1_8) {
             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_1));
             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_2));
@@ -419,6 +421,7 @@ public class SystemUtilsTest {
             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_8));
             assertFalse(SystemUtils.isJavaVersionAtLeast(JAVA_9));
             assertFalse(SystemUtils.isJavaVersionAtLeast(JAVA_10));
+            assertFalse(SystemUtils.isJavaVersionAtLeast(JAVA_11));
         } else if (SystemUtils.IS_JAVA_9) {
             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_1));
             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_2));
@@ -430,6 +433,7 @@ public class SystemUtilsTest {
             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_8));
             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_9));
             assertFalse(SystemUtils.isJavaVersionAtLeast(JAVA_10));
+            assertFalse(SystemUtils.isJavaVersionAtLeast(JAVA_11));
         } else if (SystemUtils.IS_JAVA_10) {
             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_1));
             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_2));
@@ -441,6 +445,19 @@ public class SystemUtilsTest {
             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_8));
             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_9));
             assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_10));
+            assertFalse(SystemUtils.isJavaVersionAtLeast(JAVA_11));
+        } else if (SystemUtils.IS_JAVA_11) {
+            assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_1));
+            assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_2));
+            assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_3));
+            assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_4));
+            assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_5));
+            assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_6));
+            assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_7));
+            assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_1_8));
+            assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_9));
+            assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_10));
+            assertTrue(SystemUtils.isJavaVersionAtLeast(JAVA_11));
         }
     }