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.
*/
public void removeAllArrows(UUID gameId) {
if (map.containsKey(gameId)) {
Map<Type, List<Arrow>> innerMap = map.get(gameId);
JPanel p = getArrowsPanel(gameId);
synchronized (map) {
synchronized (map) {
if (map.containsKey(gameId)) {
Map<Type, List<Arrow>> innerMap = map.get(gameId);
JPanel p = getArrowsPanel(gameId);
if (p != null && p.getComponentCount() > 0) {
p.removeAll();
p.revalidate();