diff --git a/core/resources/l10n/messages.properties b/core/resources/l10n/messages.properties index 0c13b37f3..d1462bf8a 100644 --- a/core/resources/l10n/messages.properties +++ b/core/resources/l10n/messages.properties @@ -470,6 +470,8 @@ SimulationExtension.javacode.name = Java code SimulationExtension.javacode.name.none = none SimulationExtension.javacode.desc = Add a custom SimulationListener to the simulation SimulationExtension.javacode.className = Fully-qualified Java class name: +SimulationExtension.javacode.classnotfound = Could not find class +SimulationExtension.javacode.couldnotinstantiate = Could not instantiate class %s.
Does it have a zero-argument, or @Inject constructor? SimulationExtension.scripting.name = {language} script SimulationExtension.scripting.desc = Extend OpenRocket simulations by custom scripts. diff --git a/core/src/net/sf/openrocket/simulation/extension/impl/JavaCode.java b/core/src/net/sf/openrocket/simulation/extension/impl/JavaCode.java index 3602ec175..8a1acfbfa 100644 --- a/core/src/net/sf/openrocket/simulation/extension/impl/JavaCode.java +++ b/core/src/net/sf/openrocket/simulation/extension/impl/JavaCode.java @@ -1,5 +1,6 @@ package net.sf.openrocket.simulation.extension.impl; +import com.google.inject.ConfigurationException; import net.sf.openrocket.simulation.SimulationConditions; import net.sf.openrocket.simulation.exception.SimulationException; import net.sf.openrocket.simulation.extension.AbstractSimulationExtension; @@ -23,11 +24,15 @@ public class JavaCode extends AbstractSimulationExtension { if (!SimulationListener.class.isAssignableFrom(clazz)) { throw new SimulationException("Class " + className + " does not implement SimulationListener"); } - SimulationListener listener = (SimulationListener) injector.getInstance(clazz); - conditions.getSimulationListenerList().add(listener); + try { + SimulationListener listener = (SimulationListener) injector.getInstance(clazz); + conditions.getSimulationListenerList().add(listener); + } catch (ConfigurationException e) { + throw new SimulationException(String.format(trans.get("SimulationExtension.javacode.couldnotinstantiate"), className), e); + } } } catch (ClassNotFoundException e) { - throw new SimulationException("Could not find class " + className); + throw new SimulationException(trans.get("SimulationExtension.javacode.classnotfound") + " " + className); } }