From 4a11c7e2d6f5d4dfc94e2a961a773741aed1e94b Mon Sep 17 00:00:00 2001 From: Dmitry Batkovich Date: Wed, 13 Mar 2019 14:24:20 +0300 Subject: [PATCH] use new forward index in javac indices --- .../index/CompilerReferenceIndex.java | 16 +++++----------- .../forward/AbstractForwardIndexAccessor.java | 3 ++- .../KeyCollectionForwardIndexAccessor.java | 5 +++++ 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/jps/jps-builders/src/org/jetbrains/jps/backwardRefs/index/CompilerReferenceIndex.java b/jps/jps-builders/src/org/jetbrains/jps/backwardRefs/index/CompilerReferenceIndex.java index 0d6f75a35ddf..589fdea58b3e 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/backwardRefs/index/CompilerReferenceIndex.java +++ b/jps/jps-builders/src/org/jetbrains/jps/backwardRefs/index/CompilerReferenceIndex.java @@ -12,6 +12,8 @@ import com.intellij.util.indexing.IndexExtension; import com.intellij.util.indexing.IndexId; import com.intellij.util.indexing.InvertedIndex; import com.intellij.util.indexing.impl.*; +import com.intellij.util.indexing.impl.forward.KeyCollectionForwardIndexAccessor; +import com.intellij.util.indexing.impl.forward.PersistentMapBasedForwardIndex; import com.intellij.util.io.*; import org.jetbrains.annotations.NotNull; import org.jetbrains.jps.backwardRefs.NameEnumerator; @@ -198,6 +200,7 @@ public class CompilerReferenceIndex { public void setRebuildRequestCause(Throwable e) { myRebuildRequestCause = e; + LOG.error(e); } private static void close(InvertedIndex index, CommonProcessors.FindFirstProcessor exceptionProcessor) { @@ -231,17 +234,8 @@ public class CompilerReferenceIndex { throws IOException { super(extension, createIndexStorage(extension.getKeyDescriptor(), extension.getValueExternalizer(), extension.getName(), indexDir, readOnly), - readOnly ? null : new KeyCollectionBasedForwardIndex(extension) { - @NotNull - @Override - public PersistentHashMap> createMap() throws IOException { - IndexId id = getIndexExtension().getName(); - return new PersistentHashMap<>(new File(indexDir, id.getName() + ".inputs"), - EnumeratorIntegerDescriptor.INSTANCE, - new InputIndexDataExternalizer<>(extension.getKeyDescriptor(), - id)); - } - }); + readOnly ? null : new PersistentMapBasedForwardIndex(new File(indexDir, extension.getName().getName() + ".inputs")), + readOnly ? null : new KeyCollectionForwardIndexAccessor<>(extension)); } @Override diff --git a/platform/util/src/com/intellij/util/indexing/impl/forward/AbstractForwardIndexAccessor.java b/platform/util/src/com/intellij/util/indexing/impl/forward/AbstractForwardIndexAccessor.java index b362e630beb2..9a59d1b8224a 100644 --- a/platform/util/src/com/intellij/util/indexing/impl/forward/AbstractForwardIndexAccessor.java +++ b/platform/util/src/com/intellij/util/indexing/impl/forward/AbstractForwardIndexAccessor.java @@ -4,6 +4,7 @@ package com.intellij.util.indexing.impl.forward; import com.intellij.openapi.util.ThreadLocalCachedByteArray; import com.intellij.openapi.util.io.BufferExposingByteArrayOutputStream; import com.intellij.openapi.util.io.ByteArraySequence; +import com.intellij.util.containers.ContainerUtil; import com.intellij.util.indexing.impl.InputDataDiffBuilder; import com.intellij.util.io.DataExternalizer; import com.intellij.util.io.DataOutputStream; @@ -38,7 +39,7 @@ public abstract class AbstractForwardIndexAccessor @Nullable @Override public ByteArraySequence serializeIndexedData(@Nullable Map map, @Nullable Input content) throws IOException { - if (map == null) return null; + if (ContainerUtil.isEmpty(map)) return null; return serializeToByteSeq(convertToDataType(map, content), myDataTypeExternalizer, map.size()); } diff --git a/platform/util/src/com/intellij/util/indexing/impl/forward/KeyCollectionForwardIndexAccessor.java b/platform/util/src/com/intellij/util/indexing/impl/forward/KeyCollectionForwardIndexAccessor.java index b6623bcd05e1..4b29f8544a62 100644 --- a/platform/util/src/com/intellij/util/indexing/impl/forward/KeyCollectionForwardIndexAccessor.java +++ b/platform/util/src/com/intellij/util/indexing/impl/forward/KeyCollectionForwardIndexAccessor.java @@ -2,6 +2,7 @@ package com.intellij.util.indexing.impl.forward; import com.intellij.util.containers.ContainerUtil; +import com.intellij.util.indexing.IndexExtension; import com.intellij.util.indexing.IndexId; import com.intellij.util.indexing.impl.CollectionInputDataDiffBuilder; import com.intellij.util.indexing.impl.InputDataDiffBuilder; @@ -21,6 +22,10 @@ public class KeyCollectionForwardIndexAccessor extends Abstra super(externalizer); } + public KeyCollectionForwardIndexAccessor(@NotNull IndexExtension extension) { + this(extension.getKeyDescriptor(), extension.getName()); + } + public KeyCollectionForwardIndexAccessor(@NotNull KeyDescriptor externalizer, @NotNull IndexId indexId) { super(new InputIndexDataExternalizer<>(externalizer, indexId)); }