RFR: 8248409, 8248417 Dotted version numbers in javadoc
Jonathan Gibbons
jonathan.gibbons at oracle.com
Fri Jun 26 22:04:12 UTC 2020
Please review together two fixes for two related bugs. One fix is for
JDK 15, the other for 16.
As background, there have been two recent updates to javadoc:
1. JDK 15: Use Runtime.Version to represent javadoc and doclet versions
2. JDK 16: Always include the javadoc (feature) version in the metadata
in each generated HTML file
The problem, for both, is when the version string has more than one
numeric component
i.e. an update or patch number as well as the initial feature number.
For example, 16.0.0.1.
This issue is reported in https://bugs.openjdk.java.net/browse/JDK-8248409
In the case of #1, `javadoc --version` only reported the feature version
and prerelease info
(e.g. 16-internal) and not the full version number. The intent/spec is
that it should generally
match the number(s) given in `java --version` and `javac --version`.
In the case of #2, the metadata included additional info when it was not
intended to.
In JDK 15, the fix is:
* in Versions.java, use all the components of the version number, and
not just the feature number
* in Head.java, pass in a Runtime.Version instead of a String, and
then explicitly select the
feature component
* in BaseConfiguration.java, remove getDocletVersionString() which is
now unused
Webrev: http://cr.openjdk.java.net/~jjg/8248409/webrev.00/
The patch for 15 causes merge conflicts for 16. A patch showing the
result of resolving the
merge conflicts is provided here:
http://cr.openjdk.java.net/~jjg/8248417/after-merge.patch
In JDK 16, the doclet feature version is always written out, instead of
being subject to
the `-notimestamp` option. When the patch for 8248409 is merged into 16,
the test
for the new metadata will fail because of a bug in the test that was (up
to now) cancelled
out by the issue in 8248417. The fix for the test is trivial, to use
`java.specification.version`
instead of `java.version`.
Webrev: http://cr.openjdk.java.net/~jjg/8248417/webrev.00
Note that this patch can safely be applied to JDK 16 before the patch
for 8248409.
Doing so will prevent a test failure in 16 after the fix for 8248409 is
merged and before
this patch is applied. The patch is safe to apply earlier because in
our CI EA builds,
java.version == java.specification.version, and so the test will not fail.
After both patches have been applied, all javadoc tests should pass in
both 15 and 16
when additional numeric components in the version number are present.
-- Jon
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/javadoc-dev/attachments/20200626/406e5986/attachment-0001.htm>
More information about the javadoc-dev
mailing list