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]+]*\-.*"

Use Runtime Version API's instead of a regular expression and split() API.

Reviewed-by: psandoz, mseledtsov, gthornbr
This commit is contained in:
Harold Seigel 2017-07-07 11:26:08 -04:00
parent 5bd24e0c25
commit 51949436b0

View File

@ -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";
String vm_spec_version_re = major_version_spec;
if (major_version < 7) {
vendor_re = "Sun Microsystems Inc\\.";
vm_spec_version_re = "1\\.0";
}
int major_version = Runtime.version().major();
String vm_spec_version_re = Integer.toString(major_version);
verifyProperty("java.vendor", vendor_re);
verifyProperty("java.vm.vendor", vendor_re);
verifyProperty("java.vm.specification.vendor", vendor_re);