gpt4 book ai didi

java - 在 Java 7 中加载 KeyStore 会泄漏类加载器

转载 作者:搜寻专家 更新时间:2023-10-30 21:12:23 25 4
gpt4 key购买 nike

在 Java 7 中加载 KeyStore 时,类加载器会泄漏。

我已经使用 Tomcat 7.0.47 和 classloader-leak-prevention 中的“查找泄漏”功能确认了这一点.这是 test code , webapp with the leak in @Configurationwebapp with the leak in @Controller .

基本上这些线对我来说是导致泄漏的原因:

InputStream is = null;
try {
is = new FileInputStream("./app.truststore");
KeyStore keyStore = KeyStore.getInstance("JKS");
keyStore.load(is, "changeit".toCharArray());
} catch (Exception e) {
System.out.println(e);
} finally {
if (is != null) {
is.close();
}
}

如果我删除 KeyStore.load() 一切正常,但这显然不是一个有效的解决方案。

它不适用于 Oracle JDK 1.7u15、u17、u21、u25、u40 和 u45 以及 OpenJDK 1.7u40 和 u45。

它适用于 Oracle JDK 1.6u39、u41、u43 和 45 以及 OpenJDK 1.6.0。

这是在 Microsoft Windows Server 2008 R2 Standard 64 位上测试的。 OpenJDK 是最新的 unofficial builds由 alexkasko 在 GitHub 上发布。

有谁知道可能导致类加载器泄漏的原因是什么?我尝试使用堆转储并调用“到 GC 根的最短路径”,但没有返回任何结果。

最佳答案

类加载器不会泄漏。当部署一堆空应用程序并且 PermGen 达到某个阈值时,Tomcat 的 Find Leaks 将停止报告该应用程序。因此这是一个误报。

关于java - 在 Java 7 中加载 KeyStore 会泄漏类加载器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20214382/

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