Class TransientFileFactory


  • public class TransientFileFactory
    extends Object
    The TransientFileFactory utility class can be used to create transient files, i.e. temporary files that are automatically removed once the associated File object is reclaimed by the garbage collector.

    File deletion is handled by a low-priority background thread.

    • Method Detail

      • getInstance

        public static TransientFileFactory getInstance()
        Returns the singleton TransientFileFactory instance.
      • createTransientFile

        public File createTransientFile​(String prefix,
                                        String suffix,
                                        File directory)
                                 throws IOException
        Same as File.createTempFile(String, String, File) except that the newly-created file will be automatically deleted once the returned File object has been gc'ed.
        Parameters:
        prefix - The prefix string to be used in generating the file's name; must be at least three characters long
        suffix - The suffix string to be used in generating the file's name; may be null, in which case the suffix ".tmp" will be used
        directory - The directory in which the file is to be created, or null if the default temporary-file directory is to be used
        Returns:
        the newly-created empty file
        Throws:
        IOException - If a file could not be created
      • shutdown

        public static void shutdown()
        Shuts this factory down removing all temp files and removes shutdown hook.

        Warning!!!

        This should be called by a web-application IF it is unloaded AND IF jackrabbit-jcr-commons.jar had been loaded by the webapp classloader. This must be called after all repositories had been stopped, so use with great care!

        See http://issues.apache.org/jira/browse/JCR-1636 for details.