diff --git a/platform/lang-impl/src/com/intellij/execution/impl/RunManagerImpl.java b/platform/lang-impl/src/com/intellij/execution/impl/RunManagerImpl.java index f5b7eea5f973..151c9307cb83 100644 --- a/platform/lang-impl/src/com/intellij/execution/impl/RunManagerImpl.java +++ b/platform/lang-impl/src/com/intellij/execution/impl/RunManagerImpl.java @@ -712,7 +712,8 @@ public class RunManagerImpl extends RunManagerEx implements JDOMExternalizable, final List tasks = new ArrayList(); if (includeOnlyActiveTasks) { final List checkedTemplates = new ArrayList(); - for (RunnerAndConfigurationSettings settings : myConfigurations.values()) { + List settingsList = new ArrayList(myConfigurations.values()); + for (RunnerAndConfigurationSettings settings : settingsList) { final List runTasks = getBeforeRunTasks(settings.getConfiguration()); for (BeforeRunTask task : runTasks) { if (task != null && task.isEnabled() && task.getProviderId() == taskProviderID) { @@ -822,7 +823,10 @@ public class RunManagerImpl extends RunManagerEx implements JDOMExternalizable, if (tasks != null) { return getCopies(tasks, includeOnlyActiveTasks); } + return getTemplateBeforeRunTask(settings, includeOnlyActiveTasks); + } + private List getTemplateBeforeRunTask(RunConfiguration settings, boolean includeOnlyActiveTasks) { final RunnerAndConfigurationSettings template = getConfigurationTemplate(settings.getFactory()); final List templateTasks = myConfigurationToBeforeTasksMap.get(template.getConfiguration()); if (templateTasks != null) { @@ -868,7 +872,7 @@ public class RunManagerImpl extends RunManagerEx implements JDOMExternalizable, } public final void setBeforeRunTasks(final RunConfiguration runConfiguration, List tasks) { - List templates = getBeforeRunTasks(runConfiguration);//here may be some disabled templates + List templates = getTemplateBeforeRunTask(runConfiguration, false); Set> idsToSet = new HashSet>(); List result = new ArrayList(tasks); for (BeforeRunTask task : tasks) {