From 52f086744b0a6965ac5ebf7a22f15d517dc8dc24 Mon Sep 17 00:00:00 2001 From: Dmitry Avdeev Date: Fri, 29 Nov 2013 14:06:32 +0400 Subject: [PATCH] do not try to merge stubs if version changed: take three, NPE fix --- .../com/intellij/psi/stubs/StubUpdatingIndex.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/psi/stubs/StubUpdatingIndex.java b/platform/lang-impl/src/com/intellij/psi/stubs/StubUpdatingIndex.java index 05c88a40b5ed..78762dc2467e 100644 --- a/platform/lang-impl/src/com/intellij/psi/stubs/StubUpdatingIndex.java +++ b/platform/lang-impl/src/com/intellij/psi/stubs/StubUpdatingIndex.java @@ -34,6 +34,7 @@ import com.intellij.util.io.DataExternalizer; import com.intellij.util.io.IntInlineKeyDescriptor; import com.intellij.util.io.KeyDescriptor; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.io.*; import java.util.*; @@ -301,7 +302,7 @@ public class StubUpdatingIndex extends CustomImplementationFileBasedIndexExtensi protected void updateWithMap(final int inputId, @NotNull final Map newData, @NotNull Callable> oldKeysGetter, - FileContent content) + @Nullable FileContent content) throws StorageException { checkNameStorage(); @@ -324,9 +325,12 @@ public class StubUpdatingIndex extends CustomImplementationFileBasedIndexExtensi try { getWriteLock().lock(); - VirtualFile file = content.getFile(); - ID stubId = IndexInfrastructure.getStubId(INDEX_ID, file.getFileType()); - IndexingStamp.State state = IndexingStamp.getIndexingState(file, stubId); + IndexingStamp.State state = IndexingStamp.State.FILE_CONTENT_CHANGED; + if (content != null) { + VirtualFile file = content.getFile(); + ID stubId = IndexInfrastructure.getStubId(INDEX_ID, file.getFileType()); + state = IndexingStamp.getIndexingState(file, stubId); + } final Map oldData; if (state == IndexingStamp.State.INDEX_VERSION_CHANGED) {