From b3974a42f66d2c07cc4f261f20b392ce65ac30e7 Mon Sep 17 00:00:00 2001 From: Eugene Zhuravlev Date: Thu, 19 Mar 2009 17:51:06 +0300 Subject: [PATCH] clear cache on project disposal, not project closing --- .../compiler/impl/TranslatingCompilerFilesMonitor.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/compiler/impl/com/intellij/compiler/impl/TranslatingCompilerFilesMonitor.java b/compiler/impl/com/intellij/compiler/impl/TranslatingCompilerFilesMonitor.java index 14322f1462..c02f07acf6 100644 --- a/compiler/impl/com/intellij/compiler/impl/TranslatingCompilerFilesMonitor.java +++ b/compiler/impl/com/intellij/compiler/impl/TranslatingCompilerFilesMonitor.java @@ -4,6 +4,7 @@ import com.intellij.ProjectTopics; import com.intellij.compiler.CompilerConfiguration; import com.intellij.compiler.CompilerIOUtil; import com.intellij.compiler.make.MakeUtil; +import com.intellij.openapi.Disposable; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.compiler.*; import com.intellij.openapi.compiler.ex.CompileContextEx; @@ -19,6 +20,7 @@ import com.intellij.openapi.project.ProjectManager; import com.intellij.openapi.project.ProjectManagerAdapter; import com.intellij.openapi.roots.*; import com.intellij.openapi.startup.StartupManager; +import com.intellij.openapi.util.Disposer; import com.intellij.openapi.util.Trinity; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.vfs.*; @@ -66,7 +68,12 @@ public class TranslatingCompilerFilesMonitor implements ApplicationComponent { private final TIntObjectHashMap> myOutputsToDelete = new TIntObjectHashMap>(); // Map: projectId -> Map{output path -> [sourceUrl; classname]} private final SLRUCache myGeneratedDataPaths = new SLRUCache(8, 8) { @NotNull - public File createValue(Project project) { + public File createValue(final Project project) { + Disposer.register(project, new Disposable() { + public void dispose() { + myGeneratedDataPaths.remove(project); + } + }); return CompilerPaths.getGeneratedDataDirectory(project); } }; @@ -811,7 +818,6 @@ public class TranslatingCompilerFilesMonitor implements ApplicationComponent { } public void projectClosed(final Project project) { - myGeneratedDataPaths.clear(); myConnections.remove(project).disconnect(); synchronized (mySourcesToRecompile) { mySourcesToRecompile.remove(getProjectId(project)); -- 2.11.4.GIT