From b21cde7b471d8478ced6ba97b19e428f61af0196 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Thu, 10 Dec 2015 19:04:59 +0100 Subject: [PATCH] show run menu: make cache null friendly (IDEA-149102) --- .../execution/actions/ConfigurationContext.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/platform/lang-api/src/com/intellij/execution/actions/ConfigurationContext.java b/platform/lang-api/src/com/intellij/execution/actions/ConfigurationContext.java index a836e7bc9ac6..3a1826467cb8 100644 --- a/platform/lang-api/src/com/intellij/execution/actions/ConfigurationContext.java +++ b/platform/lang-api/src/com/intellij/execution/actions/ConfigurationContext.java @@ -58,6 +58,7 @@ public class ConfigurationContext { private static final Logger LOG = Logger.getInstance("#com.intellij.execution.actions.ConfigurationContext"); private final Location myLocation; private RunnerAndConfigurationSettings myConfiguration; + private boolean myInitialized = false; private Ref myExistingConfiguration; private final Module myModule; private final RunConfiguration myRuntimeConfiguration; @@ -118,8 +119,10 @@ public class ConfigurationContext { * @return the configuration, or null if none of the producers were able to create a configuration from this context. */ @Nullable - public RunnerAndConfigurationSettings getConfiguration() { - if (myConfiguration == null) createConfiguration(); + public synchronized RunnerAndConfigurationSettings getConfiguration() { + if (myConfiguration == null && !myInitialized) { + createConfiguration(); + } return myConfiguration; } @@ -129,10 +132,12 @@ public class ConfigurationContext { myConfiguration = location != null && !DumbService.isDumb(location.getProject()) ? PreferredProducerFind.createConfiguration(location, this) : null; + myInitialized = true; } - public void setConfiguration(RunnerAndConfigurationSettings configuration) { + public synchronized void setConfiguration(@NotNull RunnerAndConfigurationSettings configuration) { myConfiguration = configuration; + myInitialized = true; } @Deprecated