show run menu: make cache null friendly (IDEA-149102)

This commit is contained in:
Anna Kozlova
2015-12-10 19:07:01 +01:00
parent 9c84e03db5
commit b21cde7b47
@@ -58,6 +58,7 @@ public class ConfigurationContext {
private static final Logger LOG = Logger.getInstance("#com.intellij.execution.actions.ConfigurationContext");
private final Location<PsiElement> myLocation;
private RunnerAndConfigurationSettings myConfiguration;
private boolean myInitialized = false;
private Ref<RunnerAndConfigurationSettings> 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