diff options
author | KHobbits <rob@khobbits.co.uk> | 2014-04-29 01:44:28 +0100 |
---|---|---|
committer | KHobbits <rob@khobbits.co.uk> | 2014-04-29 01:44:28 +0100 |
commit | b8a5fa294df0e05fca9b4fae997da2eee0ed418e (patch) | |
tree | c01c8cf4abc2030a6e80df405d5563679392533f | |
parent | 21179b2d620dadfe4db0cf071ef3674dc883cf6e (diff) | |
download | Essentials-b8a5fa294df0e05fca9b4fae997da2eee0ed418e.tar Essentials-b8a5fa294df0e05fca9b4fae997da2eee0ed418e.tar.gz Essentials-b8a5fa294df0e05fca9b4fae997da2eee0ed418e.tar.lz Essentials-b8a5fa294df0e05fca9b4fae997da2eee0ed418e.tar.xz Essentials-b8a5fa294df0e05fca9b4fae997da2eee0ed418e.zip |
Better handle a write locked usermap.csv
-rw-r--r-- | Essentials/src/com/earth2me/essentials/UUIDMap.java | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/Essentials/src/com/earth2me/essentials/UUIDMap.java b/Essentials/src/com/earth2me/essentials/UUIDMap.java index ddc2028c9..f42ea48f4 100644 --- a/Essentials/src/com/earth2me/essentials/UUIDMap.java +++ b/Essentials/src/com/earth2me/essentials/UUIDMap.java @@ -17,7 +17,6 @@ import java.util.concurrent.Executors; import java.util.concurrent.Future; import java.util.concurrent.atomic.AtomicInteger; import java.util.logging.Level; -import java.util.logging.Logger; import java.util.regex.Pattern; import org.bukkit.Bukkit; @@ -157,9 +156,11 @@ public class UUIDMap return; } + File configFile = null; + try { - File configFile = File.createTempFile("usermap", ".tmp.yml", location); + configFile = File.createTempFile("usermap", ".tmp.csv", location); final BufferedWriter bWriter = new BufferedWriter(new FileWriter(configFile)); for (Map.Entry<String, UUID> entry : names.entrySet()) @@ -173,7 +174,18 @@ public class UUIDMap } catch (IOException ex) { - Logger.getLogger(UserMap.class.getName()).log(Level.SEVERE, null, ex); + try + { + if (configFile != null && configFile.exists()) + { + Files.move(configFile, new File(endFile.getParentFile(), "usermap.bak.csv")); + } + } + catch (Exception ex2) + { + Bukkit.getLogger().log(Level.SEVERE, ex2.getMessage(), ex2); + } + Bukkit.getLogger().log(Level.WARNING, ex.getMessage(), ex); } finally { |