From f475ae92d54c6f51b1d4913240e9b5a81bbfc2ac Mon Sep 17 00:00:00 2001 From: Rustam Vishnyakov Date: Thu, 15 Aug 2019 19:37:45 +0300 Subject: [PATCH] Fall back to project settings if current computation is unfinished (locked) (IDEA-220101) GitOrigin-RevId: bb787251599db5261f6560034c50839cc6b05978 --- .../application/options/CodeStyle.java | 3 +- .../options/CodeStyleCachedValueProvider.java | 61 +++++++++++++------ 2 files changed, 44 insertions(+), 20 deletions(-) diff --git a/platform/lang-api/src/com/intellij/application/options/CodeStyle.java b/platform/lang-api/src/com/intellij/application/options/CodeStyle.java index faf81b160c4d..a06865d4ab7c 100644 --- a/platform/lang-api/src/com/intellij/application/options/CodeStyle.java +++ b/platform/lang-api/src/com/intellij/application/options/CodeStyle.java @@ -11,7 +11,6 @@ import com.intellij.psi.PsiFile; import com.intellij.psi.codeStyle.*; import com.intellij.psi.codeStyle.modifier.CodeStyleSettingsModifier; import com.intellij.psi.codeStyle.modifier.TransientCodeStyleSettings; -import com.intellij.psi.util.CachedValuesManager; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.TestOnly; @@ -87,7 +86,7 @@ public class CodeStyle { if (!file.isPhysical()) { return getSettings(project); } - return CachedValuesManager.getCachedValue(file, CodeStyleCachedValueProvider.getInstance(file)); + return CodeStyleCachedValueProvider.getInstance(file).tryGetSettings(); } diff --git a/platform/lang-api/src/com/intellij/application/options/CodeStyleCachedValueProvider.java b/platform/lang-api/src/com/intellij/application/options/CodeStyleCachedValueProvider.java index 61915ccc8037..10d6e0acc126 100644 --- a/platform/lang-api/src/com/intellij/application/options/CodeStyleCachedValueProvider.java +++ b/platform/lang-api/src/com/intellij/application/options/CodeStyleCachedValueProvider.java @@ -14,6 +14,7 @@ import com.intellij.psi.codeStyle.CodeStyleSettingsManager; import com.intellij.psi.codeStyle.modifier.CodeStyleSettingsModifier; import com.intellij.psi.codeStyle.modifier.TransientCodeStyleSettings; import com.intellij.psi.util.CachedValueProvider; +import com.intellij.psi.util.CachedValuesManager; import com.intellij.util.ArrayUtil; import com.intellij.util.concurrency.AppExecutorUtil; import org.jetbrains.annotations.NotNull; @@ -21,6 +22,8 @@ import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.List; import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; class CodeStyleCachedValueProvider implements CachedValueProvider { private final static Logger LOG = Logger.getInstance(CodeStyleCachedValueProvider.class); @@ -29,12 +32,28 @@ class CodeStyleCachedValueProvider implements CachedValueProvider compute() { @@ -106,27 +125,33 @@ class CodeStyleCachedValueProvider implements CachedValueProvider