IDEA-CR-20496 RunConfigurationBeforeRunProvider now is called for temp RC, so, we must avoid init call

This commit is contained in:
Vladimir Krivosheev
2017-04-23 09:24:54 +02:00
parent d9f9fb3bdd
commit 1933912ec4
2 changed files with 6 additions and 1 deletions
@@ -319,6 +319,11 @@ extends BeforeRunTaskProvider<RunConfigurationBeforeRunProvider.RunConfigurableB
myConfigurationType = configurationTypeAttr != null ? configurationTypeAttr.getValue() : null;
}
// avoid RunManagerImpl.getInstanceImpl and findConfigurationByTypeAndName calls (can be called during RunManagerImpl initialization)
boolean isMySettings(@NotNull RunnerAndConfigurationSettings settings) {
return settings.getType().getId().equals(myConfigurationType) && settings.getName().equals(myConfigurationName);
}
void init() {
if (myInitialized) {
return;
@@ -1118,7 +1118,7 @@ open class RunManagerImpl(internal val project: Project) : RunManagerEx(), Persi
val newList = otherConfiguration.beforeRunTasks.nullize()?.toMutableSmartList() ?: continue
val beforeRunTaskIterator = newList.iterator()
for (task in beforeRunTaskIterator) {
if (task is RunConfigurationBeforeRunProvider.RunConfigurableBeforeRunTask && toRemove.contains(task.settings)) {
if (task is RunConfigurationBeforeRunProvider.RunConfigurableBeforeRunTask && toRemove.firstOrNull { task.isMySettings(it) } != null) {
beforeRunTaskIterator.remove()
isChanged = true
changedSettings.add(settings)