triplea-game / triplea

TripleA is a turn based strategy game and board game engine, similar to Axis & Allies or Risk.
https://triplea-game.org/
GNU General Public License v3.0
1.35k stars 399 forks source link

UnitImageFactory#getIcon:381 - java.util.ConcurrentModificationException #12995

Open tripleabuilderbot opened 1 week ago

tripleabuilderbot commented 1 week ago

Map

world_war_ii_global / World War II Global 1942 2nd Edition

TripleA Version

2.6.14752

Java Version

11.0.19

Operating System

Windows 10

Heap Size

4084M

Stack Trace

Exception: java.util.ConcurrentModificationException 
java.lang.Exception
    at java.base/java.util.HashMap.computeIfAbsent(HashMap.java:1135)
    at games.strategy.triplea.image.UnitImageFactory.getIcon(UnitImageFactory.java:381)
    at games.strategy.triplea.ui.TerritoryDetailPanel.unitsInTerritoryPanel(TerritoryDetailPanel.java:189)
    at games.strategy.triplea.ui.TerritoryDetailPanel.territoryChanged(TerritoryDetailPanel.java:173)
    at games.strategy.triplea.ui.TerritoryDetailPanel$1.mouseEntered(TerritoryDetailPanel.java:58)
    at games.strategy.triplea.ui.panels.map.MapPanel.notifyMouseEntered(MapPanel.java:516)
    at games.strategy.triplea.ui.panels.map.MapPanel.updateMouseHoverState(MapPanel.java:322)
    at games.strategy.triplea.ui.panels.map.MapPanel$4.mouseMoved(MapPanel.java:273)
    at java.desktop/java.awt.AWTEventMulticaster.mouseMoved(AWTEventMulticaster.java:338)
    at java.desktop/java.awt.Component.processMouseMotionEvent(Component.java:6680)
    at java.desktop/javax.swing.JComponent.processMouseMotionEvent(JComponent.java:3360)
    at java.desktop/java.awt.Component.processEvent(Component.java:6404)
    at java.desktop/java.awt.Container.processEvent(Container.java:2263)
    at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5011)
    at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
    at java.desktop/java.awt.Component.dispatchEvent(Component.java:4843)
    at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918)
    at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4560)
    at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488)
    at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
    at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2772)
    at java.desktop/java.awt.Component.dispatchEvent(Component.java:4843)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
    at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
    at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)