-
Notifications
You must be signed in to change notification settings - Fork 4k
Closed
Closed
Copy link
Description
Describe the bug, including details regarding any error messages, version, and platform.
On an early access build of Java 21, I'm seeing some failures in Apache Arrow tests. The same tests work on Java 17, 18, 19 and 20.
Test failures all look like this:
java.lang.UnsupportedOperationException: sun.misc.Unsafe or java.nio.DirectByteBuffer.<init>(long, int) not available
org.apache.arrow.memory.util.MemoryUtil.directBuffer(MemoryUtil.java:167)
org.apache.arrow.memory.ArrowBuf.getDirectBuffer(ArrowBuf.java:228)
org.apache.arrow.memory.ArrowBuf.nioBuffer(ArrowBuf.java:223)
org.apache.arrow.vector.ipc.ReadChannel.readFully(ReadChannel.java:87)
org.apache.arrow.vector.ipc.message.MessageSerializer.readMessageBody(MessageSerializer.java:727)
org.apache.arrow.vector.ipc.message.MessageChannelReader.readNext(MessageChannelReader.java:67)
org.apache.arrow.vector.ipc.ArrowStreamReader.loadNextBatch(ArrowStreamReader.java:145)
From a brief investigation, it looks like the private (long, int) constructor has been replaced with a (long, long) constructor in Java 21. (See https://github.com/openjdk/jdk/blob/42fa000a7d042e425913aab2842f8166a0c2172a/src/java.base/share/classes/java/nio/Direct-X-Buffer.java.template#L180-L188 and openjdk/jdk@a56598f)
Component(s)
Java