summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKHobbits <rob@khobbits.co.uk>2014-04-29 01:44:28 +0100
committerKHobbits <rob@khobbits.co.uk>2014-04-29 01:44:28 +0100
commit3bf30931773df7f807237eb7cb40d6c30fda6ba8 (patch)
tree5b47f76589739dc4a08d59ae57706691aa616d38
parent5eb82add06aeca4ea4577c55e873fb2bbee9b62d (diff)
downloadEssentials-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.java18
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
{