HashMap is not thread safe. The existing synchronzed(map) is too small, should be extended to cover the surrounding code.

This commit is contained in:
Adrian Nistor 2019-06-25 21:02:45 +00:00
parent 55d252ae49
commit ebb2fe458b

View file

@ -112,10 +112,11 @@ public class ArrowBuilder {
* Removes all arrows from the screen. * Removes all arrows from the screen.
*/ */
public void removeAllArrows(UUID gameId) { public void removeAllArrows(UUID gameId) {
if (map.containsKey(gameId)) { synchronized (map) {
Map<Type, List<Arrow>> innerMap = map.get(gameId); if (map.containsKey(gameId)) {
JPanel p = getArrowsPanel(gameId); Map<Type, List<Arrow>> innerMap = map.get(gameId);
synchronized (map) { JPanel p = getArrowsPanel(gameId);
if (p != null && p.getComponentCount() > 0) { if (p != null && p.getComponentCount() > 0) {
p.removeAll(); p.removeAll();
p.revalidate(); p.revalidate();