【发布时间】:2015-11-28 08:06:25
【问题描述】:
我正在使用 Box.com Java SDK,该库执行以下 ThreadLocal:
private static final ThreadLocal<DateFormat> THREAD_LOCAL_DATE_FORMAT =
new ThreadLocal<DateFormat>() {
@Override
protected DateFormat initialValue() {
return new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
}
};
但是,我认为这是我的 tomcat 连接池问题的原因。特别是因为据报道后续泄漏会影响 HibernatePersistenceContextInterceptor。
严重:Web 应用程序 [] 创建了一个 ThreadLocal,其键类型为 [com.box.sdk.BoxDateFormat$1](值 [com.box.sdk.BoxDateFormat$1@275ab696]),值类型为 [java.文本.简单 DateFormat](值 [java.text.SimpleDateFormat@faabb360])但在 Web 应用程序停止时未能将其删除。线程将随着时间的推移而更新,以尽量避免专业人士 bable 内存泄漏。
在不重写大部分库的情况下,有没有办法处理这种情况?
【问题讨论】:
-
JDK 的哪个版本?我认为这不再是问题,因为键现在被弱引用了。
-
很遗憾,我无法更新到 Java 8。由于框架限制,我正在使用 Java 7。
标签: java tomcat grails memory-leaks