fix: defensively use deleteIfExists to prevent races in Instance

This commit is contained in:
Johannes Frohnmeyer 2023-10-03 20:15:11 +02:00
parent 7a7d009e29
commit bcd4e34f7a
Signed by: Johannes
GPG Key ID: E76429612C2929F4
1 changed files with 2 additions and 2 deletions

View File

@ -105,7 +105,7 @@ public record Instance(String id, Path path, InstanceMeta meta, ModsDirScanner m
public static void setSetupLock(Path instanceDir, boolean state) throws IOException {
if (Files.exists(instanceDir.resolve(SETUP_LOCK_NAME))) {
if (!state) Files.delete(instanceDir.resolve(SETUP_LOCK_NAME));
if (!state) Files.deleteIfExists(instanceDir.resolve(SETUP_LOCK_NAME));
} else {
if (state) Files.createDirectories(instanceDir.resolve(SETUP_LOCK_NAME));
}
@ -116,7 +116,7 @@ public record Instance(String id, Path path, InstanceMeta meta, ModsDirScanner m
try {
if (ProcessUtils.isProcessAlive(Files.readString(path.resolve(LOCK_NAME))))
return true;
Files.delete(path.resolve(LOCK_NAME));
Files.deleteIfExists(path.resolve(LOCK_NAME));
} catch (IOException e) {
Utils.LOGGER.error("Could not read running lock of " + getName(), e);
}