diff options
Diffstat (limited to 'pdf-as-common/src/main/java/at/gv/egiz/pdfas')
-rw-r--r-- | pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/utils/TempFileHelper.java | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/utils/TempFileHelper.java b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/utils/TempFileHelper.java index 611d7a0b..03cd28f3 100644 --- a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/utils/TempFileHelper.java +++ b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/utils/TempFileHelper.java @@ -27,6 +27,8 @@ public class TempFileHelper implements IProfileConstants { private List<String> tmpFiles = new ArrayList<String>(); + private boolean needsDeletion = false; + public TempFileHelper(ISettings settings) { initializeMD(); @@ -37,9 +39,12 @@ public class TempFileHelper implements IProfileConstants { // relatives tmp dir myTmpDirFile = new File(settings.getWorkingDirectory() + File.separator + myTmpDir); } - tmpDir = myTmpDirFile.getAbsolutePath(); + tmpDir = myTmpDirFile.getAbsolutePath() + File.separator; } else { - tmpDir = settings.getWorkingDirectory() + File.separator + TMP_DIR_DEFAULT_VALUE; + String uuidString = UUID.randomUUID().toString(); + logger.debug("Generated UUID " + uuidString); + tmpDir = settings.getWorkingDirectory() + File.separator + TMP_DIR_DEFAULT_VALUE + File.separator + getHashedHexString(uuidString) + File.separator; + needsDeletion = true; } logger.info("TempDirHelper for TempDirectory: " + tmpDir); @@ -66,6 +71,9 @@ public class TempFileHelper implements IProfileConstants { try { File tmpdir = new File(tmpDir); tmpdir.mkdirs(); + if(needsDeletion) { + tmpdir.deleteOnExit(); + } } catch (Throwable e) { logger.error("Failed to create temporary directory: " + tmpDir, e); } @@ -101,7 +109,7 @@ public class TempFileHelper implements IProfileConstants { public String getStaticFilename() { String uuidString = UUID.randomUUID().toString(); logger.debug("Generated UUID " + uuidString); - String tmpFilename = tmpFilePrefix + getHashedHexString(uuidString) + tmpFileSuffix; + String tmpFilename = tmpDir + getHashedHexString(uuidString) + tmpFileSuffix; logger.info("Temporary filename " + tmpFilename); tmpFiles.add(tmpFilename); return tmpFilename; |