# HG changeset patch # User iris # Date 1445825789 25200 # Node ID 7e84d60258add6ef954e7e37a77f37d8f9593e0f # Parent 301b567dba5673970c309490a24c0fd75e24a715# Parent 108819bd5c4c8a662a2ea847cbff0ab6c44a941a Merge diff -r 301b567dba56 -r 7e84d60258ad jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/XalanConstants.java --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/XalanConstants.java Thu Oct 22 08:47:46 2015 -0700 +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/XalanConstants.java Sun Oct 25 19:16:29 2015 -0700 @@ -227,24 +227,21 @@ public static final boolean IS_JDK8_OR_ABOVE = isJavaVersionAtLeast(8); /* - * Check the version of the current JDK against that specified in the - * parameter + * Check the major version of the current JDK against that specified + * in the parameter * - * There is a proposal to change the java version string to: - * MAJOR.MINOR.FU.CPU.PSU-BUILDNUMBER_BUGIDNUMBER_OPTIONAL - * This method would work with both the current format and that proposed + * In JDK9 the java version string was changed to comply with JEP-223 + * so this method was modified to handle that new format as well * - * @param compareTo a JDK version to be compared to - * @return true if the current version is the same or above that represented - * by the parameter + * @param compareTo a JDK major version to be compared to + * @return true if the current major version is the same or above + * that represented by the parameter */ public static boolean isJavaVersionAtLeast(int compareTo) { String javaVersion = SecuritySupport.getSystemProperty("java.version"); - String versions[] = javaVersion.split("\\.", 3); - if (Integer.parseInt(versions[0]) >= compareTo || - Integer.parseInt(versions[1]) >= compareTo) { - return true; - } - return false; + javaVersion = (javaVersion.matches("[1-9][0-9]*(\\.(0|[1-9][0-9]*))*\\-.*")) ? + javaVersion.split("-|\\.")[0] : + javaVersion.split("\\.", 3)[1]; + return Integer.parseInt(javaVersion) >= compareTo; } } // class Constants diff -r 301b567dba56 -r 7e84d60258ad jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/Constants.java --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/Constants.java Thu Oct 22 08:47:46 2015 -0700 +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/Constants.java Sun Oct 25 19:16:29 2015 -0700 @@ -857,25 +857,22 @@ } // getXercesProperties():Enumeration /* - * Check the version of the current JDK against that specified in the - * parameter + * Check the major version of the current JDK against that specified + * in the parameter * - * There is a proposal to change the java version string to: - * MAJOR.MINOR.FU.CPU.PSU-BUILDNUMBER_BUGIDNUMBER_OPTIONAL - * This method would work with both the current format and that proposed + * In JDK9 the java version string was changed to comply with JEP-223 + * so this method was modified to handle that new format as well * - * @param compareTo a JDK version to be compared to - * @return true if the current version is the same or above that represented - * by the parameter + * @param compareTo a JDK major version to be compared to + * @return true if the current major version is the same or above + * that represented by the parameter */ public static boolean isJavaVersionAtLeast(int compareTo) { String javaVersion = SecuritySupport.getSystemProperty("java.version"); - String versions[] = javaVersion.split("\\.", 3); - if (Integer.parseInt(versions[0]) >= compareTo || - Integer.parseInt(versions[1]) >= compareTo) { - return true; - } - return false; + javaVersion = (javaVersion.matches("[1-9][0-9]*(\\.(0|[1-9][0-9]*))*\\-.*")) ? + javaVersion.split("-|\\.")[0] : + javaVersion.split("\\.", 3)[1]; + return Integer.parseInt(javaVersion) >= compareTo; } //