[ https://issues.apache.org/jira/browse/TIKA-1738?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Yaniv Kunda updated TIKA-1738: ------------------------------ Attachment: TIKA-1738.patch This patch moves the bootstrap jar creation to be static and happen only once in the class initialization. Deletion is done using a single shutdown hook, which will *probably* do its job, if no handle created by a forked process still references the file - i.e. if enough time has passed since the last forked process was destroyed and the JVM was shutdown. It also uses java.nio.file instead of the old java.io package. Added benefit: performance is better since forked process do not need to create the bootstrap jar all over again. Added drawback: if temp jar is deleted between forks future forks would fail. > ForkClient does not always delete temporary bootstrap jar > --------------------------------------------------------- > > Key: TIKA-1738 > URL: https://issues.apache.org/jira/browse/TIKA-1738 > Project: Tika > Issue Type: Bug > Components: core > Environment: Windows 10 > Reporter: Yaniv Kunda > Priority: Minor > Fix For: 1.11 > > Attachments: TIKA-1738.patch > > > ForkClient creates a new temporary bootstrap jar each time it's instantiated, > and tries to delete it in the {{close()}} method, after destroying the > process. > Possibly a Windows-specific behavior, the OS seem to still hold a handle to > the file a bit after the process is destroyed, causing the delete() method to > do nothing. > This is recreated by simply running ForkParserTest on my machine. > In a long-running process,this could fill the temp folder with many bootstrap > jars that will never be deleted. -- This message was sent by Atlassian JIRA (v6.3.4#6332)