diff --git a/java/execution/impl/src/com/intellij/execution/applet/AppletConfiguration.java b/java/execution/impl/src/com/intellij/execution/applet/AppletConfiguration.java index 1b49808ef077..7c31e1419f79 100644 --- a/java/execution/impl/src/com/intellij/execution/applet/AppletConfiguration.java +++ b/java/execution/impl/src/com/intellij/execution/applet/AppletConfiguration.java @@ -46,17 +46,16 @@ public class AppletConfiguration extends ModuleBasedConfiguration getOptionsClass() { + return AppletConfigurationOptions.class; + } + @Override public void setMainClass(final PsiClass psiClass) { final Module originalModule = getConfigurationModule().getModule(); diff --git a/platform/lang-api/src/com/intellij/execution/configurations/LocatableConfigurationBase.java b/platform/lang-api/src/com/intellij/execution/configurations/LocatableConfigurationBase.java index 53993757b0f1..bd125d32cd37 100644 --- a/platform/lang-api/src/com/intellij/execution/configurations/LocatableConfigurationBase.java +++ b/platform/lang-api/src/com/intellij/execution/configurations/LocatableConfigurationBase.java @@ -18,19 +18,13 @@ public abstract class LocatableConfigurationBase extends RunConfigurationBase im super(project, factory, name); } - @NotNull - @Override - protected RunConfigurationOptions createOptions() { - return new LocatableRunConfigurationOptions(); - } - @Override protected LocatableRunConfigurationOptions getOptions() { return (LocatableRunConfigurationOptions)super.getOptions(); } @Override - Class getOptionsClass() { + protected Class getOptionsClass() { return LocatableRunConfigurationOptions.class; } diff --git a/platform/lang-api/src/com/intellij/execution/configurations/ModuleBasedConfiguration.java b/platform/lang-api/src/com/intellij/execution/configurations/ModuleBasedConfiguration.java index 6e25751f3049..e84ef8463733 100644 --- a/platform/lang-api/src/com/intellij/execution/configurations/ModuleBasedConfiguration.java +++ b/platform/lang-api/src/com/intellij/execution/configurations/ModuleBasedConfiguration.java @@ -33,12 +33,6 @@ public abstract class ModuleBasedConfiguration createOptions() { - return new ModuleBasedConfigurationOptions<>(); - } - @Override protected ModuleBasedConfigurationOptions getOptions() { //noinspection unchecked @@ -46,7 +40,7 @@ public abstract class ModuleBasedConfiguration getOptionsClass() { + protected Class getOptionsClass() { return ModuleBasedConfigurationOptions.class; } @@ -98,6 +92,18 @@ public abstract class ModuleBasedConfiguration(myLogFiles); runConfiguration.myPredefinedLogFiles = new ArrayList<>(myPredefinedLogFiles); + + runConfiguration.myOptions = createOptions(); runConfiguration.myOptions.copyFrom(myOptions); copyCopyableDataTo(runConfiguration); @@ -206,16 +209,14 @@ public abstract class RunConfigurationBase extends UserDataHolderBase implements myPredefinedLogFiles.add(logFile); } - if (this instanceof PersistentStateComponent) { - PersistentStateComponent instance = (PersistentStateComponent)this; - myOptions = XmlSerializer.deserialize(element, ComponentSerializationUtil.getStateClass(instance.getClass())); - } - else { - myOptions = XmlSerializer.deserialize(element, getOptionsClass()); - } + myOptions = XmlSerializer.deserialize(element, getOptionsClass()); } - Class getOptionsClass() { + protected Class getOptionsClass() { + if (this instanceof PersistentStateComponent) { + PersistentStateComponent instance = (PersistentStateComponent)this; + return ComponentSerializationUtil.getStateClass(instance.getClass()); + } return RunConfigurationOptions.class; }