mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
flush serializers as earlier as possible to prevent one of the reasons of SerilizerNotFoundException (IDEA-136562). Serializers are initialized once so no extra io is introduced
(cherry picked from commit fa25663)
This commit is contained in:
@@ -19,8 +19,8 @@ import com.intellij.openapi.application.PathManager;
|
||||
import com.intellij.openapi.components.ApplicationComponent;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.util.ShutDownTracker;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.util.io.AbstractStringEnumerator;
|
||||
import com.intellij.util.io.IOUtil;
|
||||
import com.intellij.util.io.PersistentStringEnumerator;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@@ -81,14 +81,7 @@ public class SerializationManagerImpl extends SerializationManagerEx implements
|
||||
myNameStorage.close();
|
||||
}
|
||||
|
||||
final File[] files = myFile.getParentFile().listFiles();
|
||||
if (files != null) {
|
||||
for (File file : files) {
|
||||
if (file.getName().startsWith(myFile.getName())) {
|
||||
FileUtil.delete(file);
|
||||
}
|
||||
}
|
||||
}
|
||||
IOUtil.deleteAllFilesStartingWith(myFile);
|
||||
myNameStorage = new PersistentStringEnumerator(myFile, true);
|
||||
myStubSerializationHelper = new StubSerializationHelper(myNameStorage);
|
||||
for (ObjectStubSerializer serializer : myAllSerializers) {
|
||||
@@ -104,7 +97,9 @@ public class SerializationManagerImpl extends SerializationManagerEx implements
|
||||
|
||||
@Override
|
||||
public void flushNameStorage() {
|
||||
myNameStorage.force();
|
||||
if (myNameStorage.isDirty()) {
|
||||
myNameStorage.force();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -355,6 +355,8 @@ public class FileBasedIndexImpl extends FileBasedIndex {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
mySerializationManagerEx.flushNameStorage();
|
||||
|
||||
if (lastModCount == myLocalModCount) {
|
||||
flushAllIndices(lastModCount);
|
||||
}
|
||||
@@ -712,9 +714,6 @@ public class FileBasedIndexImpl extends FileBasedIndex {
|
||||
}
|
||||
}
|
||||
|
||||
if (!HeavyProcessLatch.INSTANCE.isRunning() && modCount == myLocalModCount) { // do not interfere with 'main' jobs
|
||||
mySerializationManagerEx.flushNameStorage();
|
||||
}
|
||||
ContentHashesSupport.flushContentHashes();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user