From ade2c2127349332a6d49543ee03f7e13120ea688 Mon Sep 17 00:00:00 2001 From: "Maxim.Mossienko" Date: Mon, 28 Jul 2014 14:12:27 +0200 Subject: [PATCH] flush cached libraries info upon shutdown --- .../intellij/openapi/vfs/impl/jar/JarHandler.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/jar/JarHandler.java b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/jar/JarHandler.java index 06676b213831..98c3884cc993 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/jar/JarHandler.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/jar/JarHandler.java @@ -22,6 +22,7 @@ import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.progress.ProgressIndicator; import com.intellij.openapi.progress.ProgressManager; import com.intellij.openapi.util.NotNullLazyValue; +import com.intellij.openapi.util.ShutDownTracker; import com.intellij.openapi.util.io.FileAttributes; import com.intellij.openapi.util.io.FileSystemUtil; import com.intellij.openapi.util.io.FileUtil; @@ -263,9 +264,20 @@ public class JarHandler extends ZipHandler { FlushingDaemon.everyFiveSeconds(new Runnable() { @Override public void run() { - if (ourCachedLibraryInfo.isDirty()) ourCachedLibraryInfo.force(); + flushCachedLibraryInfos(); } }); + + ShutDownTracker.getInstance().registerShutdownTask(new Runnable() { + @Override + public void run() { + flushCachedLibraryInfos(); + } + }); + } + + private static void flushCachedLibraryInfos() { + if (ourCachedLibraryInfo.isDirty()) ourCachedLibraryInfo.force(); } private CacheLibraryInfo(@NotNull String path, long time, long length) {