You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@marmotta.apache.org by ss...@apache.org on 2014/01/07 17:50:39 UTC

git commit: fix MARMOTTA-257 (save configuration first to temp file and then move to original destination)

Updated Branches:
  refs/heads/develop 030a0a1df -> 86d1a4004


fix MARMOTTA-257 (save configuration first to temp file and then move to original destination)


Project: http://git-wip-us.apache.org/repos/asf/marmotta/repo
Commit: http://git-wip-us.apache.org/repos/asf/marmotta/commit/86d1a400
Tree: http://git-wip-us.apache.org/repos/asf/marmotta/tree/86d1a400
Diff: http://git-wip-us.apache.org/repos/asf/marmotta/diff/86d1a400

Branch: refs/heads/develop
Commit: 86d1a4004e5f0c03c18ad1a8ad010a740181575f
Parents: 030a0a1
Author: Sebastian Schaffert <ss...@apache.org>
Authored: Tue Jan 7 17:50:35 2014 +0100
Committer: Sebastian Schaffert <ss...@apache.org>
Committed: Tue Jan 7 17:50:35 2014 +0100

----------------------------------------------------------------------
 .../config/ConfigurationServiceImpl.java        | 21 ++++++++++++++++----
 1 file changed, 17 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/marmotta/blob/86d1a400/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/services/config/ConfigurationServiceImpl.java
----------------------------------------------------------------------
diff --git a/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/services/config/ConfigurationServiceImpl.java b/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/services/config/ConfigurationServiceImpl.java
index df13c5e..50a52af 100644
--- a/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/services/config/ConfigurationServiceImpl.java
+++ b/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/services/config/ConfigurationServiceImpl.java
@@ -44,6 +44,10 @@ import java.io.IOException;
 import java.lang.reflect.Array;
 import java.net.URL;
 import java.net.UnknownHostException;
+import java.nio.file.FileSystems;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.StandardCopyOption;
 import java.util.*;
 import java.util.concurrent.locks.ReadWriteLock;
 import java.util.concurrent.locks.ReentrantLock;
@@ -1133,16 +1137,25 @@ public class ConfigurationServiceImpl implements ConfigurationService {
     protected void save() {
         if(saveConfiguration instanceof PropertiesConfiguration) {
             try {
-                ((PropertiesConfiguration)saveConfiguration).save();
-            } catch (ConfigurationException e) {
+                Path tmpFile = Files.createTempFile(FileSystems.getDefault().getPath(getHome()),"system-config",".properties");
+
+                ((PropertiesConfiguration) saveConfiguration).save(tmpFile.toFile());
+
+                Files.move(tmpFile, FileSystems.getDefault().getPath(configFileName), StandardCopyOption.REPLACE_EXISTING, StandardCopyOption.ATOMIC_MOVE);
+            } catch (ConfigurationException | IOException e) {
                 log.error("could not save system configuration: #0", e.getMessage());
             }
         }
 
         if(saveMetadata instanceof PropertiesConfiguration) {
             try {
-                ((PropertiesConfiguration)saveMetadata).save();
-            } catch (ConfigurationException e) {
+                Path tmpFile = Files.createTempFile(FileSystems.getDefault().getPath(getHome()),"system-meta",".properties");
+
+                ((PropertiesConfiguration)saveMetadata).save(tmpFile.toFile());
+
+
+                Files.move(tmpFile, FileSystems.getDefault().getPath(metaFileName), StandardCopyOption.REPLACE_EXISTING, StandardCopyOption.ATOMIC_MOVE);
+            } catch (ConfigurationException | IOException e) {
                 log.error("could not save system metadata: #0", e.getMessage());
             }
         }