-
Notifications
You must be signed in to change notification settings - Fork 59
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Compatibility with Java 16 #241
Comments
With a small fix, we can make 7 of them work pretty quickly. Illegal reflective accesses used to generate warnings, but as of JDK16, they are forbidden unless the given modules are explicitly requested on the command line (or in the I've experimented locally with a renaissance build that includes the scala upgrades from #242 to see which
Benchmarks who don't work out of the box with the above
|
Remaining work for this issue:
|
Re-tested on a418bdb. All benchmarks are working, only
|
Sorry about the confusion, |
Hmm, this is probably because JMH launches its own JVM and does not pass the "opens" to the newly launched JVM... |
I think there is something else happening as in the above mentioned log, the normal run does not append any I have the needed changes in this branch 65329f0. |
For the normal (non-JMH runs), the --add-opens equivalent is in MANIFEST.MF:
JMH has no way of knowing to pass this on to the JVM it launches, which is why it needs the extra arguments. Which is to say that runs using the normal (non-JMH) JAR should not need workaround arguments (even for JVM 16). |
Ahaaa, I have not noticed that.
Thanks! I will fix that. |
Added more environments to be tested on GitHub Actions CI. It now runs on * Linux: all JDKs from 8 to 16 * Linux with OpenJ9: 8, 11, 16 * MacOS: 8, 11, 13, 15 * Windows: 8, 11, 13, 15 Also added --add-opens to JMH runs for JDK 16 (see #241).
Thank you for fixing this! |
Just a quick list of benchmarks failing on Java 16 (using the 0.11.0 build), since I was running it recently:
java.lang.reflect.InaccessibleObjectException: Unable to make field transient java.lang.Object[] java.util.ArrayList.elementData accessible: module java.base does not "opens java.util" to unnamed module @681a8b4e
java.lang.reflect.InaccessibleObjectException: Unable to make field transient java.lang.Object[] java.util.ArrayList.elementData accessible: module java.base does not "opens java.util" to unnamed module @681a8b4e
java.lang.IllegalAccessError: class net.openhft.chronicle.core.OS (in unnamed module @0x5082d622) cannot access class sun.nio.ch.FileChannelImpl (in module java.base) because module java.base does not export sun.nio.ch to unnamed module @0x5082d622
Caused by: java.lang.StringIndexOutOfBoundsException: begin 0, end 3, length 2
java.lang.reflect.InaccessibleObjectException: Unable to make field transient java.lang.Object[] java.util.ArrayList.elementData accessible: module java.base does not "opens java.util" to unnamed module @681a8b4e
java.lang.reflect.InaccessibleObjectException: Unable to make field transient java.lang.Object[] java.util.ArrayList.elementData accessible: module java.base does not "opens java.util" to unnamed module @4bff64c2
java.lang.reflect.InaccessibleObjectException: Unable to make field transient java.lang.Object[] java.util.ArrayList.elementData accessible: module java.base does not "opens java.util" to unnamed module @4c2cc639
java.lang.reflect.InaccessibleObjectException: Unable to make field transient java.lang.Object[] java.util.ArrayList.elementData accessible: module java.base does not "opens java.util" to unnamed module @681a8b4e
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field private java.lang.String java.lang.Throwable.detailMessage accessible: module java.base does not "opens java.lang" to unnamed module @4e31276e
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field final byte[] java.nio.ByteBuffer.hb accessible: module java.base does not "opens java.nio" to unnamed module @5c08c46a
The text was updated successfully, but these errors were encountered: