Browse Source

Fix create parent directory will cause FileAlreadyExistsException (#15576)

Co-authored-by: Rick Cheng <rickchengx@gmail.com>
(cherry picked from commit 4541e74e53)
3.2.1-prepare
Wenjun Ruan 10 months ago committed by Jay Chung
parent
commit
eff7364ee1
  1. 10
      dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/FileUtils.java

10
dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/FileUtils.java

@ -35,6 +35,7 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.nio.file.FileAlreadyExistsException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.attribute.PosixFilePermission;
@ -287,8 +288,13 @@ public class FileUtils {
createDirectoryWith755(parent);
}
Files.createDirectory(path);
Files.setPosixFilePermissions(path, PERMISSION_755);
try {
Files.createDirectory(path);
Files.setPosixFilePermissions(path, PERMISSION_755);
} catch (FileAlreadyExistsException fileAlreadyExistsException) {
// Catch the FileAlreadyExistsException here to avoid create the same parent directory in parallel
log.debug("The directory: {} already exists", path);
}
}
}

Loading…
Cancel
Save