From 4336ee86ee8b29ff24766d37a883a1e42201fdfc Mon Sep 17 00:00:00 2001 From: nik Date: Mon, 6 Jun 2016 10:37:11 +0300 Subject: [PATCH] SSR: synchronization corrected --- .../intellij/structuralsearch/impl/matcher/MatcherImpl.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/platform/structuralsearch/source/com/intellij/structuralsearch/impl/matcher/MatcherImpl.java b/platform/structuralsearch/source/com/intellij/structuralsearch/impl/matcher/MatcherImpl.java index e68dce94b560..c8b30e128c57 100644 --- a/platform/structuralsearch/source/com/intellij/structuralsearch/impl/matcher/MatcherImpl.java +++ b/platform/structuralsearch/source/com/intellij/structuralsearch/impl/matcher/MatcherImpl.java @@ -80,13 +80,14 @@ public class MatcherImpl { } private static SoftReference lastMatchData; + private static final Object lastMatchDataLock = new Object(); protected MatcherImpl(Project project) { this(project, null); } public static void validate(Project project, MatchOptions options) { - synchronized(MatcherImpl.class) { + synchronized (lastMatchDataLock) { final LastMatchData data = new LastMatchData(); data.lastPattern = PatternCompiler.compilePattern(project, options); data.lastOptions = options; @@ -295,7 +296,7 @@ public class MatcherImpl { if (compiledPattern == null) { - synchronized(getClass()) { + synchronized (lastMatchDataLock) { final LastMatchData data = com.intellij.reference.SoftReference.dereference(lastMatchData); if (data != null && options == data.lastOptions) { compiledPattern = data.lastPattern;