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)

Reply via email to