Willem Salembier created MIME4J-251:
---------------------------------------
Summary: Memory leak in TempFileStorageProvider
Key: MIME4J-251
URL: https://issues.apache.org/jira/browse/MIME4J-251
Project: James Mime4j
Issue Type: Bug
Components: project
Affects Versions: 0.7.2
Reporter: Willem Salembier
Priority: Critical
Usage of the File#deleteOnExit hook in the class TempFileStorageProvider causes
a memory leak for long-running servers:
{code}
public StorageOutputStream createStorageOutputStream() throws IOException {
File file = File.createTempFile(prefix, suffix, directory);
file.deleteOnExit();
return new TempFileStorageOutputStream(file);
}
{code}
The JDK keeps a set of File references (even when already deleted) in memory
until the JVM exists. This set grows infinitely. Server-side libraries should
never call {{File#deleteOnExit}}
https://bugs.openjdk.java.net/browse/JDK-4872014
https://bugs.openjdk.java.net/browse/JDK-4513817
class DeleteOnExitHook {
private static LinkedHashSet<String> files = new LinkedHashSet<>();
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)