gpt4 book ai didi

java - Netty 日志现在显示 "low-level API for accessing direct buffers reliably"

转载 作者:行者123 更新时间:2023-11-29 08:47:19 26 4
gpt4 key购买 nike

为什么从 netty 4.0.15 到 4.0.19 我现在看到“您的平台没有提供完整的低级 API 来可靠地访问直接缓冲区。”在日志中?

我不是 Android 平台,我的 JRE 没有改变,我正在使用 OSGi。

关于如何检测这一点的顺序是否有所改变?

最佳答案

PlatformDependent0 似乎已经改变了它检测 sun.nio.ch.DirectBuffer 是否可用的方式。

    boolean directBufferFreeable = false;
try {
Class<?> cls = Class.forName("sun.nio.ch.DirectBuffer", false, getClassLoader(PlatformDependent0.class));
Method method = cls.getMethod("cleaner");
if ("sun.misc.Cleaner".equals(method.getReturnType().getName())) {
directBufferFreeable = true;
}
} catch (Throwable t) {
// We don't have sun.nio.ch.DirectBuffer.cleaner().
}
logger.debug("sun.nio.ch.DirectBuffer.cleaner(): {}", directBufferFreeable? "available" : "unavailable");

由于这是一个 OSGi 应用程序,我需要将“sun.nio.ch”添加到 ClassLoader。我在这种情况下使用 felix 并将以下属性添加到配置中:

config.put(FRAMEWORK_SYSTEMPACKAGES_EXTRA, "sun.misc,sun.nio.ch");

关于java - Netty 日志现在显示 "low-level API for accessing direct buffers reliably",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24458084/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com