[ https://issues.apache.org/jira/browse/FLINK-25002?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Chesnay Schepler closed FLINK-25002. ------------------------------------ Fix Version/s: 1.18.0 Resolution: Fixed master: 2940c02c986e3d70708187091bf006806bb90dff > Setup required --add-opens/--add-exports > ---------------------------------------- > > Key: FLINK-25002 > URL: https://issues.apache.org/jira/browse/FLINK-25002 > Project: Flink > Issue Type: Sub-task > Components: Build System, Build System / CI, Documentation, Tests > Reporter: Chesnay Schepler > Assignee: Chesnay Schepler > Priority: Major > Labels: pull-request-available > Fix For: 1.18.0 > > > Java 17 actually enforces the encapsulation of the JDK (opposed to Java 11 > which just printed warnings), requiring us to explicitly open/export any > package that we access illegally. > The following is a list of opens/exports that I needed to get most tests to > pass, also with some comments which component needed them. Overall the > ClosureCleaner and FieldSerializer result in the most offenses, as they try > to access private fields. > These properties need to be set _for all JVMs in which we run Flink_, > including surefire forks, other tests processes > (TestJvmProcess/TestProcessBuilder/Yarn) and the distribution. > This needs some thought on how we can share this list across poms (surefire), > code (test processes / yarn) and the configuration (distribution). > {code:xml} > <surefire.module.config> <!-- > -->--add-exports java.base/sun.net.util=ALL-UNNAMED <!-- > required by JmxServer > -->--add-exports java.rmi/sun.rmi.registry=ALL-UNNAMED <!-- > -->--add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED <!-- > -->--add-exports jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED <!-- > -->--add-exports jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED > <!-- > -->--add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED <!-- > -->--add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED <!-- > HadoopUtilsTest > -->--add-exports java.security.jgss/sun.security.krb5=ALL-UNNAMED <!-- > -->--add-opens java.base/java.lang=ALL-UNNAMED <!-- > RocksDBAsyncSnapshotTest Whitebox SerializedThrowable > -->--add-opens java.base/java.lang.invoke=ALL-UNNAMED <!-- > RoundingMode > -->--add-opens java.base/java.math=ALL-UNNAMED <!-- > -->--add-opens java.base/java.net=ALL-UNNAMED <!-- > InitOutputPathTest > -->--add-opens java.base/java.io=ALL-UNNAMED <!-- > InitOutputPathTest > -->--add-opens java.base/java.lang.reflect=ALL-UNNAMED <!-- > ClosureCleaner Timestamp > -->--add-opens java.sql/java.sql=ALL-UNNAMED <!-- > lz4 Buffer > -->--add-opens java.base/java.nio=ALL-UNNAMED <!-- > ClosureCleaner SimpleDateFormat > -->--add-opens java.base/java.text=ALL-UNNAMED <!-- > FieldSerializer LocalDate > -->--add-opens java.base/java.time=ALL-UNNAMED <!-- > ExpressionKeysTest > -->--add-opens java.base/java.util=ALL-UNNAMED <!-- > AsynchronousFileIOChannelTest > -->--add-opens java.base/java.util.concurrent=ALL-UNNAMED <!-- > Kryo FieldSerializer > -->--add-opens java.base/java.util.concurrent.atomic=ALL-UNNAMED <!-- > ClosureCleaner ReentrantLock > -->--add-opens java.base/java.util.concurrent.locks=ALL-UNNAMED <!-- > Whitebox ReferencePipeline$Head > -->--add-opens java.base/java.util.stream=ALL-UNNAMED <!-- > ClosureCleaner ZoneInfo > -->--add-opens java.base/sun.util.calendar=ALL-UNNAMED > </surefire.module.config> > {code} > Additionally, the following JVM arguments must be supplied when running Maven: > {code} > export MAVEN_OPTS="\ > --add-exports jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED \ > --add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED \ > --add-exports jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED \ > --add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED \ > --add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED \ > --add-exports java.security.jgss/sun.security.krb5=ALL-UNNAMED" > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)