8183400: runtime/6981737/Test6981737.java fails with java.lang.RuntimeException: FAIL: Wrong value for java.version property, "9", expected to be of form: "[0-9]+[\\.[0-9]+]*\-.*"
authorhseigel
Fri, 07 Jul 2017 11:26:08 -0400
changeset 46639 c6618ddbe993
parent 46638 3c5c50af29a7
child 46641 f64dc604ef8d
8183400: runtime/6981737/Test6981737.java fails with java.lang.RuntimeException: FAIL: Wrong value for java.version property, "9", expected to be of form: "[0-9]+[\\.[0-9]+]*\-.*" Summary: Use Runtime Version API's instead of a regular expression and split() API. Reviewed-by: psandoz, mseledtsov, gthornbr
hotspot/test/runtime/6981737/Test6981737.java
--- a/hotspot/test/runtime/6981737/Test6981737.java	Fri Jul 07 10:37:52 2017 +0200
+++ b/hotspot/test/runtime/6981737/Test6981737.java	Fri Jul 07 11:26:08 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -32,23 +32,15 @@
 public class Test6981737 {
 
     /**
-     * Check the 'vendor' properties java.vm.specification.version
-     * property.  Before jdk7, they should be "Sun Micro..." and "1.0".
-     * In jdk7 onwards they should be "Oracle..." and "1.<major_version>"
+     * Check the 'vendor' properties and java.vm.specification.version property.
+     * In jdk9 onwards they should be "Oracle..." and "<major_version>"
      */
     public static void main(String[] args) throws Exception {
 
-        String version = verifyProperty("java.version", "[0-9]+[\\\\.[0-9]+]*\\-.*");
-        String version_tokens[] = version.split("-|\\.");
-        String major_version_spec = version_tokens[0];
-        int major_version = new Integer(major_version_spec).intValue();
+        String vendor_re = "Oracle Corporation";
+        int major_version = Runtime.version().major();
+        String vm_spec_version_re = Integer.toString(major_version);
 
-        String vendor_re = "Oracle Corporation";
-        String vm_spec_version_re = major_version_spec;
-        if (major_version < 7) {
-            vendor_re = "Sun Microsystems Inc\\.";
-            vm_spec_version_re = "1\\.0";
-        }
         verifyProperty("java.vendor", vendor_re);
         verifyProperty("java.vm.vendor", vendor_re);
         verifyProperty("java.vm.specification.vendor", vendor_re);