Skip to content

Commit 30bdf2b

Browse files
committed
added Fallback if atomic move is not supported (e.g. for docker)
1 parent 8203d02 commit 30bdf2b

1 file changed

Lines changed: 8 additions & 1 deletion

File tree

src/main/java/de/unirostock/sems/cbarchive/web/WorkspaceManager.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import java.io.IOException;
2424
import java.io.InputStream;
2525
import java.io.OutputStream;
26+
import java.nio.file.AtomicMoveNotSupportedException;
2627
import java.nio.file.Files;
2728
import java.nio.file.StandardCopyOption;
2829
import java.text.ParseException;
@@ -254,7 +255,13 @@ public synchronized void storeSettings() {
254255
Files.createDirectories( Fields.SETTINGS_FILE.toPath().getParent() );
255256

256257
// replace actual settings file, with newly written one
257-
Files.move( temp.toPath(), Fields.SETTINGS_FILE.toPath(), StandardCopyOption.REPLACE_EXISTING, StandardCopyOption.ATOMIC_MOVE );
258+
try {
259+
Files.move( temp.toPath(), Fields.SETTINGS_FILE.toPath(), StandardCopyOption.REPLACE_EXISTING, StandardCopyOption.ATOMIC_MOVE );
260+
}
261+
catch (AtomicMoveNotSupportedException e) {
262+
LOGGER.warn(e, "Atomic move of settings file failed. Fallback to normal operation. This is normal in a Virtualisation Container");
263+
Files.move( temp.toPath(), Fields.SETTINGS_FILE.toPath(), StandardCopyOption.REPLACE_EXISTING );
264+
}
258265

259266
// set time of last store to now
260267
lastSaved = savedDate;

0 commit comments

Comments
 (0)