Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[CELEBORN-763] Add --add-opens to bootstrap shell scripts
### What changes were proposed in this pull request? Add --add-opens to bootstrap shell scripts ### Why are the changes needed? Additional `--add-opens` is required for Java 17, notes, the `--add-opens` list is copied from Spark and was used for UT, I am not sure each of them is required but at least the UT passed with them. Details supplied by cfmcgrady [JEP 403](https://openjdk.java.net/jeps/403) targeted for [JDK 17](https://openjdk.java.net/projects/jdk/17/) will remove `--illegal-access` flag. That will be equivalent to `--illegal-access=deny`. this means using reflection to invoke protected methods of exported `java.*` APIs will no longer work. For example: ```shell > /Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home/bin/jshell | 欢迎使用 JShell -- 版本 17.0.7 | 要大致了解该版本, 请键入: /help intro jshell> java.nio.ByteBuffer direct = java.nio.ByteBuffer.allocateDirect(1); direct ==> java.nio.DirectByteBuffer[pos=0 lim=1 cap=1] jshell> direct.getClass().getDeclaredConstructor(long.class, int.class).setAccessible(true); | 异常错误 java.lang.reflect.InaccessibleObjectException:Unable to make private java.nio.DirectByteBuffer(long,int) accessible: module java.base does not "opens java.nio" to unnamed module 34c45dca | at AccessibleObject.checkCanSetAccessible (AccessibleObject.java:354) | at AccessibleObject.checkCanSetAccessible (AccessibleObject.java:297) | at Constructor.checkCanSetAccessible (Constructor.java:188) | at Constructor.setAccessible (Constructor.java:181) | at (#2:1) jshell> ``` ```shell > /Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home/bin/jshell -R --add-opens=java.base/java.nio=ALL-UNNAMED | 欢迎使用 JShell -- 版本 17.0.7 | 要大致了解该版本, 请键入: /help intro jshell> java.nio.ByteBuffer direct = java.nio.ByteBuffer.allocateDirect(1); direct ==> java.nio.DirectByteBuffer[pos=0 lim=1 cap=1] jshell> direct.getClass().getDeclaredConstructor(long.class, int.class).setAccessible(true); jshell> ``` ### Does this PR introduce _any_ user-facing change? Yes, for Java 17 support. ### How was this patch tested? CI and review Closes #1677 from pan3793/CELEBORN-763. Authored-by: Cheng Pan <[email protected]> Signed-off-by: Cheng Pan <[email protected]> (cherry picked from commit 5b3f43d) Signed-off-by: Cheng Pan <[email protected]>
- Loading branch information