Properly fix concurrent modification when removing all attachments.

This commit is contained in:
ElgarL 2012-04-10 17:02:50 +01:00
parent ec4f5cc34d
commit f02691863b

View file

@ -357,7 +357,7 @@ public class BukkitPermissions {
} catch (IllegalArgumentException e) { } catch (IllegalArgumentException e) {
/* /*
* Failed to remove attachment * Failed to remove attachment
* This usually means Bukkit no longer know of it. * This usually means Bukkit no longer knows of it.
*/ */
} }
attachments.remove(player); attachments.remove(player);
@ -372,9 +372,18 @@ public class BukkitPermissions {
Iterator<Player> itr = attachments.keySet().iterator(); Iterator<Player> itr = attachments.keySet().iterator();
while (itr.hasNext()){ while (itr.hasNext()){
removeAttachment(itr.next()); Player player = itr.next();
try {
player.removeAttachment(attachments.get(player));
} catch (IllegalArgumentException e) {
/*
* Failed to remove attachment
* This usually means Bukkit no longer knows of it.
*/
} }
} }
attachments.clear();
}
/** /**
* Player events tracked to cause Superperms updates * Player events tracked to cause Superperms updates