Details
-
Sub-task
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
Description
Building Ozone with Java 9+ (but with target=8) and running with Java 8 results in:
NoSuchMethodError: java.nio.ByteBuffer.position(I)Ljava/nio/ByteBuffer; at org.apache.hadoop.ozone.common.ChunkBufferImplWithByteBuffer.duplicate(ChunkBufferImplWithByteBuffer.java:111)
Explanation:
https://www.morling.dev/blog/bytebuffer-and-the-dreaded-nosuchmethoderror/
Can be fixed by setting --release for javac (only for JDK 9+, since it's a new param), via maven.compiler.release.
When using --release, access to Sun internal API is not allowed: https://bugs.openjdk.org/browse/JDK-8206937 Therefore this fix requires HDDS-11078.
Attachments
Issue Links
- requires
-
HDDS-11078 Remove usage of sun.misc.Signal
- Resolved
- links to