1
0
mirror of https://github.com/essentials/Essentials.git synced 2025-08-15 11:04:29 +02:00

Thread safety for XMPP

This commit is contained in:
snowleo
2012-08-04 10:48:56 +02:00
parent af73c11638
commit bf93bb2026
2 changed files with 11 additions and 6 deletions

View File

@@ -2,6 +2,7 @@ package com.earth2me.essentials.xmpp;
import com.earth2me.essentials.IEssentials; import com.earth2me.essentials.IEssentials;
import com.earth2me.essentials.User; import com.earth2me.essentials.User;
import java.util.List;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
@@ -45,11 +46,15 @@ class EssentialsXMPPPlayerListener implements Listener
{ {
try try
{ {
for (String address : EssentialsXMPP.getInstance().getSpyUsers()) List<String> users = EssentialsXMPP.getInstance().getSpyUsers();
synchronized (users)
{
for (String address : users)
{ {
EssentialsXMPP.getInstance().sendMessage(address, message); EssentialsXMPP.getInstance().sendMessage(address, message);
} }
} }
}
catch (Exception ex) catch (Exception ex)
{ {
// Ignore exceptions // Ignore exceptions

View File

@@ -9,7 +9,7 @@ import java.util.*;
public class UserManager implements IConf public class UserManager implements IConf
{ {
private final transient EssentialsConf users; private final transient EssentialsConf users;
private final transient List<String> spyusers = new ArrayList<String>(); private final transient List<String> spyusers = Collections.synchronizedList(new ArrayList<String>());
private final static String ADDRESS = "address"; private final static String ADDRESS = "address";
private final static String SPY = "spy"; private final static String SPY = "spy";