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; private ChatMessageManager chatMessageManager;
@Getter @Getter
private final Map<UUID, PartyData> partyDataMap = new HashMap<>(); private final Map<UUID, PartyData> partyDataMap = Collections.synchronizedMap(new HashMap<>());
@Getter @Getter
private final List<PartyTilePingData> pendingTilePings = Collections.synchronizedList(new ArrayList<>()); 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; boolean only1 = plugin.getPartyDataMap().size() == 1;
synchronized (plugin.getPartyDataMap())
{
partyDataMap.forEach((k, v) -> partyDataMap.forEach((k, v) ->
{ {
if (party.getLocalMember() != null && party.getLocalMember().getMemberId().equals(k)) if (party.getLocalMember() != null && party.getLocalMember().getMemberId().equals(k))
@@ -128,6 +130,7 @@ public class PartyStatsOverlay extends Overlay
body.getChildren().add(panel); body.getChildren().add(panel);
}); });
}
return body.render(graphics); return body.render(graphics);
} }