JDK 10: First Release Candidate

Volker Simonis volker.simonis at gmail.com
Tue Feb 13 16:48:11 UTC 2018


I found the following problem with the JDK 10 Release Candidate:

1. JEP 322 [1] specifies:

java.vendor.version - ... If not assigned at build time then it has no
value; otherwise, its value is a non-empty string that matches the
regular expression \p{Graph}+

2. The new Java 10 API doc for java.lang.System [2] specifies the following:

getProperties() ... This set of system properties always includes
values for the following keys:
java.vendor.version    Java vendor version

These two specifications contradict each other. JEP 322 allows for
"java.vendor.version" having no value (i.e. being NULL or not defined)
if not set at build time, while the API doc requires that
System.getProperty("java.vendor.version") always returns a value (i.e.
the property must be defined and not NULL).

The current sources in jdk/jdk10 implement the behavior defined in JEP
322. If '--with-vendor-version' isn't given while configuring the
build (or is given with an empty string as argument) the System
properties won't have an entry for "java.vendor.version".

How can we fix this?

1. We could remove "java.vendor.version" from the set of system
properties which are required to always have a value.
2. We could rephrase JEP 322 to something like "If not assigned at
build time then it's value is the empty string; otherwise, ..."

I think I'd prefer the second solution, although that would also
require a tiny change to Version.java.template to set the
"java.vendor.version" unconditionally.

What do you think?


[1] http://openjdk.java.net/jeps/322
[2] http://cr.openjdk.java.net/~mr/jeps/322/specdiff/java/lang/System-report.html#method:getProperties()

On Mon, Feb 12, 2018 at 7:51 PM,  <mark.reinhold at oracle.com> wrote:
> There are no unresolved P1 bugs in build 43, so that is our
> first JDK 10 Release Candidate.
> Binaries available here, as usual: http://jdk.java.net/10
> - Mark

More information about the jdk-dev mailing list