Fix ConcurrentModification in party stats overlay

Fix concurrent modification exception in party stats overlay when
iterating map.

Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
This commit is contained in:
Tomas Slusny
2019-02-01 20:55:00 +01:00
parent 92427968b0
commit f52c1d732b
2 changed files with 42 additions and 39 deletions

View File

@@ -119,7 +119,7 @@ public class PartyPlugin extends Plugin implements KeyListener
private ChatMessageManager chatMessageManager;
@Getter
private final Map<UUID, PartyData> partyDataMap = new HashMap<>();
private final Map<UUID, PartyData> partyDataMap = Collections.synchronizedMap(new HashMap<>());
@Getter
private final List<PartyTilePingData> pendingTilePings = Collections.synchronizedList(new ArrayList<>());

View File

@@ -80,6 +80,8 @@ public class PartyStatsOverlay extends Overlay
boolean only1 = plugin.getPartyDataMap().size() == 1;
synchronized (plugin.getPartyDataMap())
{
partyDataMap.forEach((k, v) ->
{
if (party.getLocalMember() != null && party.getLocalMember().getMemberId().equals(k))
@@ -128,6 +130,7 @@ public class PartyStatsOverlay extends Overlay
body.getChildren().add(panel);
});
}
return body.render(graphics);
}