From 3bf30931773df7f807237eb7cb40d6c30fda6ba8 Mon Sep 17 00:00:00 2001 From: KHobbits Date: Tue, 29 Apr 2014 01:44:28 +0100 Subject: Better handle a write locked usermap.csv --- Essentials/src/com/earth2me/essentials/UUIDMap.java | 18 +++++++++++++++--- 1 file 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 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 { -- cgit v1.2.3