From 4ecd61ede925df33702851aac69d1aea37a41965 Mon Sep 17 00:00:00 2001 From: Dmitry Avdeev Date: Thu, 23 May 2013 12:49:42 +0400 Subject: [PATCH] updating stubs per filetype: no need to remove the version directory --- .../util/indexing/FileBasedIndexTest.java | 18 ++++++++++++++++++ .../intellij/psi/stubs/StubUpdatingIndex.java | 5 ++--- .../util/indexing/IndexInfrastructure.java | 4 ---- .../indexing}/FileTypeIndexTest.java | 7 ++++++- 4 files changed, 26 insertions(+), 8 deletions(-) create mode 100644 java/java-tests/testSrc/com/intellij/util/indexing/FileBasedIndexTest.java rename platform/platform-tests/testSrc/com/intellij/{psi/search => util/indexing}/FileTypeIndexTest.java (92%) diff --git a/java/java-tests/testSrc/com/intellij/util/indexing/FileBasedIndexTest.java b/java/java-tests/testSrc/com/intellij/util/indexing/FileBasedIndexTest.java new file mode 100644 index 000000000000..426afcbc7ad0 --- /dev/null +++ b/java/java-tests/testSrc/com/intellij/util/indexing/FileBasedIndexTest.java @@ -0,0 +1,18 @@ +package com.intellij.util.indexing; + +import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase; + +/** + * @author Dmitry Avdeev + * Date: 5/23/13 + */ +public class FileBasedIndexTest extends LightCodeInsightFixtureTestCase { + + public void testSurviveOnFileTypeChange() throws Exception { + myFixture.configureByText("Foo.java", "class Foo { String bar; }"); + myFixture.testHighlighting(); + FileTypeIndexTest.addAndRemoveFileType(); + myFixture.configureByText("Bar.java", "class Bar { String bar; }"); + myFixture.testHighlighting(); + } +} 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 e43d8f7304c3..c1a8edda1339 100644 --- a/platform/lang-impl/src/com/intellij/psi/stubs/StubUpdatingIndex.java +++ b/platform/lang-impl/src/com/intellij/psi/stubs/StubUpdatingIndex.java @@ -35,7 +35,6 @@ import org.jetbrains.annotations.NotNull; import java.io.DataInput; import java.io.DataOutput; -import java.io.File; import java.io.IOException; import java.util.*; import java.util.concurrent.Callable; @@ -405,8 +404,8 @@ public class StubUpdatingIndex extends CustomImplementationFileBasedIndexExtensi } } - File dir= IndexInfrastructure.getStubVersionsDirectory(); - if (dir.exists()) dir.delete(); + //File dir= IndexInfrastructure.getStubVersionsDirectory(); + //if (dir.exists()) dir.delete(); super.clear(); } finally { diff --git a/platform/lang-impl/src/com/intellij/util/indexing/IndexInfrastructure.java b/platform/lang-impl/src/com/intellij/util/indexing/IndexInfrastructure.java index d241861d0933..17349de3dee6 100644 --- a/platform/lang-impl/src/com/intellij/util/indexing/IndexInfrastructure.java +++ b/platform/lang-impl/src/com/intellij/util/indexing/IndexInfrastructure.java @@ -74,10 +74,6 @@ public class IndexInfrastructure { return indexDir; } - public static File getStubVersionsDirectory() { - return new File(getIndexRootDir(StubUpdatingIndex.INDEX_ID), STUB_VERSIONS); - } - private static volatile long ourLastStamp; // ensure any file index stamp increases public static synchronized void rewriteVersion(final File file, final int version) throws IOException { diff --git a/platform/platform-tests/testSrc/com/intellij/psi/search/FileTypeIndexTest.java b/platform/platform-tests/testSrc/com/intellij/util/indexing/FileTypeIndexTest.java similarity index 92% rename from platform/platform-tests/testSrc/com/intellij/psi/search/FileTypeIndexTest.java rename to platform/platform-tests/testSrc/com/intellij/util/indexing/FileTypeIndexTest.java index 46f46358affc..7456fa6eae3c 100644 --- a/platform/platform-tests/testSrc/com/intellij/psi/search/FileTypeIndexTest.java +++ b/platform/platform-tests/testSrc/com/intellij/util/indexing/FileTypeIndexTest.java @@ -13,13 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.intellij.psi.search; +package com.intellij.util.indexing; import com.intellij.openapi.fileTypes.FileType; import com.intellij.openapi.fileTypes.FileTypeManager; import com.intellij.openapi.fileTypes.ex.FakeFileType; import com.intellij.openapi.fileTypes.ex.FileTypeManagerEx; import com.intellij.openapi.vfs.VirtualFile; +import com.intellij.psi.search.FileTypeIndex; import com.intellij.testFramework.PlatformTestCase; import com.intellij.testFramework.fixtures.LightPlatformCodeInsightFixtureTestCase; import org.jetbrains.annotations.NotNull; @@ -35,6 +36,10 @@ public class FileTypeIndexTest extends LightPlatformCodeInsightFixtureTestCase { } public void testAddFileType() throws Exception { + addAndRemoveFileType(); + } + + static void addAndRemoveFileType() { FileType foo = new FakeFileType() { @Override public boolean isMyFileType(VirtualFile file) {