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 | 3bf30931773df7f807237eb7cb40d6c30fda6ba8 (patch) | |
tree | 5b47f76589739dc4a08d59ae57706691aa616d38 | |
parent | 5eb82add06aeca4ea4577c55e873fb2bbee9b62d (diff) | |
download | Essentials-3bf30931773df7f807237eb7cb40d6c30fda6ba8.tar Essentials-3bf30931773df7f807237eb7cb40d6c30fda6ba8.tar.gz Essentials-3bf30931773df7f807237eb7cb40d6c30fda6ba8.tar.lz Essentials-3bf30931773df7f807237eb7cb40d6c30fda6ba8.tar.xz Essentials-3bf30931773df7f807237eb7cb40d6c30fda6ba8.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 { |