Я использую scala.collection.concurrent.TriMap
, завернутый в объект для хранения значений конфигурации, которые извлекаются удаленно.Потенциальная утечка памяти с использованием TriMap в Scala и Tomcat
object persistentMemoryMap {
val storage: TrieMap[String, CacheEntry] = TrieMap[String, CacheEntry]()
}
Это прекрасно работает, но я заметил, что когда Tomcat выключен он регистрирует тревожные сообщения о потенциальной утечке памяти
2013-jun-27 08:58:22 org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
ALLVARLIG: The web application [] created a ThreadLocal with key of type [scala.concurrent.forkjoin.ThreadLocalRandom$1] (value [[email protected]]) and a value of type [scala.concurrent.forkjoin.ThreadLocalRandom] (value [[email protected]]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak
Я предполагаю, что это нить закончится по себе в конце концов, но я Мне интересно, есть ли способ убить его или я должен просто оставить его в покое?