diff --git a/core/src/net/sf/openrocket/rocketcomponent/Rocket.java b/core/src/net/sf/openrocket/rocketcomponent/Rocket.java index 173c55268..c7e82866b 100644 --- a/core/src/net/sf/openrocket/rocketcomponent/Rocket.java +++ b/core/src/net/sf/openrocket/rocketcomponent/Rocket.java @@ -1,6 +1,7 @@ package net.sf.openrocket.rocketcomponent; import java.util.*; +import java.util.concurrent.ConcurrentHashMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -62,7 +63,7 @@ public class Rocket extends ComponentAssembly { // Flight configuration list private FlightConfiguration selectedConfiguration; private FlightConfigurableParameterSet configSet; - private HashMap stageMap = new HashMap<>(); + private ConcurrentHashMap stageMap = new ConcurrentHashMap<>(); // Does the rocket have a perfect finish (a notable amount of laminar flow) private boolean perfectFinish = false; @@ -371,7 +372,7 @@ public class Rocket extends ComponentAssembly { final Rocket copyRocket = (Rocket) super.copyWithOriginalID(); // Rocket copy is cloned, so non-trivial members must be cloned as well: - copyRocket.stageMap = new HashMap<>(); + copyRocket.stageMap = new ConcurrentHashMap<>(); for( Map.Entry entry : this.stageMap.entrySet()){ final AxialStage stage = (AxialStage)copyRocket.findComponent(entry.getValue().getID()); copyRocket.stageMap.put(entry.getKey(), stage);