Dale Emery created GEODE-10128:
----------------------------------
Summary: Open and export additional packages when running tests on
JDK 17
Key: GEODE-10128
URL: https://issues.apache.org/jira/browse/GEODE-10128
Project: Geode
Issue Type: Improvement
Components: ci, tests
Affects Versions: 1.16.0
Reporter: Dale Emery
JDK 17 throws exceptions when code attempts certain kinds of access to packages
that are not opened or exported by their modules. JDK 11 issued warnings in
these cases.
When Gradle launches test JVMs, it must open and export the packages that will
be accessed by product and test code during the tests. We currently configure a
few packages in {{{}test.gradle{}}}. To support JDK 17, we must open and export
additional packages.
Additional packages to open (via {{{}--add-opens{}}}):
- java.base/java.lang
- java.base/java.nio
- java.base/java.text
- java.base/java.util
- java.base/java.util.concurrent
- java.base/java.util.concurrent.atomic
- java.base/java.util.concurrent.locks
- java.base/javax.net.ssl
- java.base/sun.security.ssl
- java.base/sun.util.locale
- java.rmi/sun.rmi.transport
Additional packages to export (via {{{}--add-opens{}}}):
- java.base/jdk.internal.util.random
- java.base/sun.nio.ch
- java.base/sun.security.x509
- java.management/com.sun.jmx.remote.security
We may discover additional packages to open/export as we run more tests under
JDK 17, and as we change product and test code.
Note that different JDKs define different {{jdk.internal}} subpackages. For
example:
- JDK 17 has {{{}jdk.internal.util.random{}}}, but JDK 11 does not.
- On Linux, JDK 11 and 17 have {{{}jdk.internal.platform.cgroupv1{}}}, but
Windows and macOS JDKs do not.
We have a few options for dealing with the differing {{jdk.internal}} packages:
- Configure which packages we open/export depending on the JDK implementation.
- Open all of these packages on all JDK platforms and versions (JDK 9 or
higher). This will produce warnings when we open/export a package that does not
exist.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)