Jelajahi Sumber

HADOOP-14586. StringIndexOutOfBoundsException breaks org.apache.hadoop.util.Shell on 2.7.x with Java 9. Contributed by Uwe Schindler.

Konstantin V Shvachko 7 tahun lalu
induk
melakukan
c5e9a15e1e

+ 4 - 0
hadoop-common-project/hadoop-common/CHANGES.txt

@@ -9,6 +9,7 @@ Release 2.7.4 - UNRELEASED
   NEW FEATURES
 
   IMPROVEMENTS
+
     HADOOP-12259. Utility to Dynamic port allocation (brahmareddy via rkanter)
 
     HADOOP-10597. RPC Server signals backoff to clients when all request
@@ -162,6 +163,9 @@ Release 2.7.4 - UNRELEASED
     HADOOP-14044. Synchronization issue in delegation token cancel
     functionality. (Hrishikesh Gadre via xiao)
 
+    HADOOP-14586. StringIndexOutOfBoundsException breaks
+    org.apache.hadoop.util.Shell on 2.7.x with Java 9. (Uwe Schindler via shv)
+
 Release 2.7.3 - 2016-08-25
 
   INCOMPATIBLE CHANGES

+ 5 - 2
hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/Shell.java

@@ -48,8 +48,11 @@ abstract public class Shell {
   
   public static final Log LOG = LogFactory.getLog(Shell.class);
   
-  private static boolean IS_JAVA7_OR_ABOVE =
-      System.getProperty("java.version").substring(0, 3).compareTo("1.7") >= 0;
+  /**
+   * java.version is enforced via maven-enforcer-plugin.
+   * Starting from Hadoop 2.7.0 Java 1.7 or higher is required.
+   */
+  private static boolean IS_JAVA7_OR_ABOVE = true;
 
   public static boolean isJava7OrAbove() {
     return IS_JAVA7_OR_ABOVE;