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);