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
commitb8a5fa294df0e05fca9b4fae997da2eee0ed418e (patch)
treec01c8cf4abc2030a6e80df405d5563679392533f
parent21179b2d620dadfe4db0cf071ef3674dc883cf6e (diff)
downloadEssentials-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.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
{