diff --git a/platform/lang-impl/src/com/intellij/execution/impl/RunnerAndConfigurationSettingsImpl.java b/platform/lang-impl/src/com/intellij/execution/impl/RunnerAndConfigurationSettingsImpl.java index 59e2ac7622a4..e55d39f50139 100644 --- a/platform/lang-impl/src/com/intellij/execution/impl/RunnerAndConfigurationSettingsImpl.java +++ b/platform/lang-impl/src/com/intellij/execution/impl/RunnerAndConfigurationSettingsImpl.java @@ -247,7 +247,8 @@ public class RunnerAndConfigurationSettingsImpl implements JDOMExternalizable, C myUnloadedRunnerSettings.clear(); } myLoadedRunnerSettings.clear(); - for (Element runnerElement : element.getChildren(RUNNER_ELEMENT)) { + for (Iterator iterator = element.getChildren(RUNNER_ELEMENT).iterator(); iterator.hasNext(); ) { + Element runnerElement = iterator.next(); String id = runnerElement.getAttributeValue(RUNNER_ID); ProgramRunner runner = RunnerRegistry.getInstance().findRunnerById(id); if (runner != null) { @@ -262,11 +263,15 @@ public class RunnerAndConfigurationSettingsImpl implements JDOMExternalizable, C if (myUnloadedRunnerSettings == null) { myUnloadedRunnerSettings = new SmartList(); } + + iterator.remove(); myUnloadedRunnerSettings.add(runnerElement); } } - myUnloadedConfigurationPerRunnerSettings = null; + if (myUnloadedRunnerSettings != null) { + myUnloadedRunnerSettings.clear(); + } for (Iterator iterator = element.getChildren(CONFIGURATION_ELEMENT).iterator(); iterator.hasNext(); ) { Element configurationElement = iterator.next(); ProgramRunner runner = RunnerRegistry.getInstance().findRunnerById(configurationElement.getAttributeValue(RUNNER_ID));