add back check for if dir already exists

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1917583 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
PJ Fanning 2024-05-08 17:24:41 +00:00
parent c960ee6070
commit efce9ba930
1 changed files with 13 additions and 5 deletions

View File

@ -77,15 +77,23 @@ public class DefaultTempFileCreationStrategy implements TempFileCreationStrategy
// Create our temp dir only once by double-checked locking
// The directory is not deleted, even if it was created by this TempFileCreationStrategy
if (dir == null) {
final String tmpDir = System.getProperty(JAVA_IO_TMPDIR);
if (tmpDir == null) {
throw new IOException("System's temporary directory not defined - set the -D" + JAVA_IO_TMPDIR + " jvm property!");
}
dirLock.lock();
try {
if (dir == null) {
String tmpDir = System.getProperty(JAVA_IO_TMPDIR);
if (tmpDir == null) {
throw new IOException("System's temporary directory not defined - set the -D" + JAVA_IO_TMPDIR + " jvm property!");
}
Path dirPath = Paths.get(tmpDir, POIFILES);
dir = Files.createDirectories(dirPath).toFile();
File fileDir = dirPath.toFile();
if (fileDir.exists()) {
if (!fileDir.isDirectory()) {
throw new IOException("Could not create temporary directory. '" + fileDir + "' exists but is not a directory.");
}
dir = fileDir;
} else {
dir = Files.createDirectories(dirPath).toFile();
}
}
} finally {
dirLock.unlock();