Browse Source

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
pull/634/head
PJ Fanning 3 weeks ago
parent
commit
efce9ba930

+ 13
- 5
poi/src/main/java/org/apache/poi/util/DefaultTempFileCreationStrategy.java 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();

Loading…
Cancel
Save