Houston Putman created KAFKA-19045: -------------------------------------- Summary: ByteBufferUnmapper should not use the deprecated sun.misc.Unsafe#invokeCleaner() Key: KAFKA-19045 URL: https://issues.apache.org/jira/browse/KAFKA-19045 Project: Kafka Issue Type: Improvement Components: clients Reporter: Houston Putman
When using Java 24+ and utilizing Kafka Clients in the Solr cross-dc testing, we see the following warnings from Java: {quote}{{WARNING: A terminally deprecated method in sun.misc.Unsafe has been called}} {{WARNING: sun.misc.Unsafe::invokeCleaner has been called by org.apache.kafka.common.utils.ByteBufferUnmapper}} {{WARNING: Please consider reporting this to the maintainers of class org.apache.kafka.common.utils.ByteBufferUnmapper}} {{WARNING: sun.misc.Unsafe::invokeCleaner will be removed in a future release}} {{{}OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended{}}}{{{{}}{}}} {quote} The [Lucene {{MMapDirectory}}|https://github.com/apache/lucene/blob/main/lucene/core/src/java/org/apache/lucene/store/MMapDirectory.java] , that Kafka's ByteBufferUnmapper was based off of, has changed quite a lot over the last few years, and no longer uses the "sun.misc.Unsafe#invokeCleaner()" API. The usage was removed in: [https://github.com/apache/lucene/pull/912] This was a major task, and Lucene now uses Java APIs that are only available in preview modules. Therefore it also does a lot of work to build multiple jars, each for a different version of the JDK (since the preview code might change between versions). So this would probably be a big task for Kafka to change it before those new Java APIs are no-longer preview-only. But anyways, the method is deprecated, so it's good to get the discussion going early. -- This message was sent by Atlassian Jira (v8.20.10#820010)