You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tika.apache.org by "Yaniv Kunda (JIRA)" <ji...@apache.org> on 2015/09/20 14:27:04 UTC

[jira] [Updated] (TIKA-1738) ForkClient does not always delete temporary bootstrap jar

     [ 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)