From 3c797d00cfa34d1f940beae504a43e8feebd01e6 Mon Sep 17 00:00:00 2001 From: Alexander Bubenchikov Date: Mon, 5 Aug 2019 11:28:24 +0300 Subject: [PATCH] IDEA-219033 - artifact added to index if it exists in local repo and not present in index - removed queue GitOrigin-RevId: f6ee75b6b74d3ba0feb649ce9698c977d4704fac --- .../maven/indices/MavenIndicesManager.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/indices/MavenIndicesManager.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/indices/MavenIndicesManager.java index 3e0185fecaa6..aa3f1e2afa26 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/indices/MavenIndicesManager.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/indices/MavenIndicesManager.java @@ -13,8 +13,6 @@ import com.intellij.openapi.util.Pair; import com.intellij.openapi.util.text.StringUtil; import com.intellij.util.JdomKt; import com.intellij.util.io.PathKt; -import com.intellij.util.ui.update.MergingUpdateQueue; -import com.intellij.util.ui.update.Update; import gnu.trove.THashSet; import org.jdom.Element; import org.jdom.JDOMException; @@ -432,14 +430,19 @@ public class MavenIndicesManager implements Disposable { private static class IndexFixer { - private final MergingUpdateQueue myMergingUpdateQueue = - new MergingUpdateQueue(this.getClass().getName(), 1000, true, MergingUpdateQueue.ANY_COMPONENT, null, null, false); + private final static Set INDEXED = Collections.newSetFromMap(new WeakHashMap<>()); public void fixIndex(File file, MavenIndex index) { - myMergingUpdateQueue.queue(new Update(file.getPath()) { - @Override - public void run() { - index.addArtifact(file); + synchronized (INDEXED) { + if (INDEXED.contains(file.getName())) { + return; + } + } + + ApplicationManager.getApplication().executeOnPooledThread(() -> { + index.addArtifact(file); + synchronized (INDEXED) { + INDEXED.add(file.getName()); } }); }