From 10f6a0f9eb712f2f7d451d67acabe9d3c9f6fff7 Mon Sep 17 00:00:00 2001 From: "Maxim.Mossienko" Date: Fri, 24 Jan 2014 14:16:51 +0100 Subject: [PATCH] another stub update index fix: - stubs doesn't get buffered status update notifications because they aren't built out of unsaved documents - also index read also made affected to buffered status --- .../com/intellij/util/indexing/FileBasedIndexImpl.java | 2 ++ .../com/intellij/util/indexing/MemoryIndexStorage.java | 8 +++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexImpl.java b/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexImpl.java index bf687a8ff3e9..f88466692589 100644 --- a/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexImpl.java +++ b/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexImpl.java @@ -1450,6 +1450,7 @@ public class FileBasedIndexImpl extends FileBasedIndex { // if we have uncommitted documents in unsaved documents, we may index old psi with new uncommitted doc, // to properly reindex with new psi / new doc we don't mark index up to date in this case (IDEA-111448) + myUpToDateIndices.add(indexId); } } } @@ -1603,6 +1604,7 @@ public class FileBasedIndexImpl extends FileBasedIndex { for (ID indexId : myIndices.keySet()) { final MapReduceIndex index = (MapReduceIndex)getIndex(indexId); assert index != null; + if (myPsiDependentIndices.contains(indexId)) continue; final IndexStorage indexStorage = index.getStorage(); ((MemoryIndexStorage)indexStorage).setBufferingEnabled(enabled); } diff --git a/platform/lang-impl/src/com/intellij/util/indexing/MemoryIndexStorage.java b/platform/lang-impl/src/com/intellij/util/indexing/MemoryIndexStorage.java index 2b27622810a0..3ef7d2ac4e98 100644 --- a/platform/lang-impl/src/com/intellij/util/indexing/MemoryIndexStorage.java +++ b/platform/lang-impl/src/com/intellij/util/indexing/MemoryIndexStorage.java @@ -187,9 +187,11 @@ public class MemoryIndexStorage implements IndexStorage @Override @NotNull public ValueContainer read(final Key key) throws StorageException { - final ValueContainer valueContainer = myMap.get(key); - if (valueContainer != null) { - return valueContainer; + if (myBufferingEnabled.get()) { + final ValueContainer valueContainer = myMap.get(key); + if (valueContainer != null) { + return valueContainer; + } } return myBackendStorage.read(key);