-
Bug
-
Resolution: Fixed
-
P3
-
16.0.2
-
b19
-
generic
-
generic
A DESCRIPTION OF THE PROBLEM :
The canonical order of declarations inside the module-info.java file seems to follow the order:
`module some.module.name {
requires ...
requires transitive ...
exports ...
exports ... to ...
opens ... to ...
uses ...
provides ... with ...
}
`
The "requires" was changed to "requires transitive" as part of a larger change 8248564, but not reordered.
This is the only module-info.java file in the src/** directory that deviates from what appears to be the canonical order.
REGRESSION : Last worked in version 15
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Look at the /src/jdk.management.jfr/share/classes/module-info.java file. It reads:
module jdk.management.jfr {
requires transitive jdk.jfr;
requires jdk.management;
requires transitive java.management;
....
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
In order to stay consistent with the canonical order, this should have read:
module jdk.management.jfr {
requires jdk.management;
requires transitive java.management;
requires transitive jdk.jfr;
ACTUAL -
module jdk.management.jfr {
requires transitive jdk.jfr;
requires jdk.management;
requires transitive java.management;
....
CUSTOMER SUBMITTED WORKAROUND :
It is not a serious issue.
FREQUENCY : always
The canonical order of declarations inside the module-info.java file seems to follow the order:
`module some.module.name {
requires ...
requires transitive ...
exports ...
exports ... to ...
opens ... to ...
uses ...
provides ... with ...
}
`
The "requires" was changed to "requires transitive" as part of a larger change 8248564, but not reordered.
This is the only module-info.java file in the src/** directory that deviates from what appears to be the canonical order.
REGRESSION : Last worked in version 15
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Look at the /src/jdk.management.jfr/share/classes/module-info.java file. It reads:
module jdk.management.jfr {
requires transitive jdk.jfr;
requires jdk.management;
requires transitive java.management;
....
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
In order to stay consistent with the canonical order, this should have read:
module jdk.management.jfr {
requires jdk.management;
requires transitive java.management;
requires transitive jdk.jfr;
ACTUAL -
module jdk.management.jfr {
requires transitive jdk.jfr;
requires jdk.management;
requires transitive java.management;
....
CUSTOMER SUBMITTED WORKAROUND :
It is not a serious issue.
FREQUENCY : always