diff --git a/core/src/net/sf/openrocket/document/Simulation.java b/core/src/net/sf/openrocket/document/Simulation.java index 50047e07f..3143eb83d 100644 --- a/core/src/net/sf/openrocket/document/Simulation.java +++ b/core/src/net/sf/openrocket/document/Simulation.java @@ -1,5 +1,6 @@ package net.sf.openrocket.document; +import java.lang.reflect.InvocationTargetException; import java.util.EventListener; import java.util.EventObject; import java.util.List; @@ -350,13 +351,15 @@ public class Simulation implements ChangeSource, Cloneable { SimulationEngine simulator; try { - simulator = simulationEngineClass.newInstance(); + simulator = simulationEngineClass.getConstructor().newInstance(); } catch (InstantiationException e) { throw new IllegalStateException("Cannot instantiate simulator.", e); } catch (IllegalAccessException e) { throw new IllegalStateException("Cannot access simulator instance?! BUG!", e); + } catch (InvocationTargetException | NoSuchMethodException e) { + throw new RuntimeException(e); } - + SimulationConditions simulationConditions = options.toSimulationConditions(); simulationConditions.setSimulation(this); for (SimulationListener l : additionalListeners) {