diff --git a/java/compiler/impl/src/com/intellij/compiler/impl/StateCache.java b/java/compiler/impl/src/com/intellij/compiler/impl/StateCache.java index f3551da2cb7b..676d7f2b38f3 100644 --- a/java/compiler/impl/src/com/intellij/compiler/impl/StateCache.java +++ b/java/compiler/impl/src/com/intellij/compiler/impl/StateCache.java @@ -15,7 +15,6 @@ */ package com.intellij.compiler.impl; -import com.intellij.openapi.util.io.FileUtil; import com.intellij.util.io.DataExternalizer; import com.intellij.util.io.EnumeratorStringDescriptor; import com.intellij.util.io.PersistentHashMap; @@ -55,12 +54,7 @@ public abstract class StateCache { } catch (IOException ignored) { } - final String baseName = myBaseFile.getName(); - for (File file : myBaseFile.getParentFile().listFiles()) { - if (file.getName().startsWith(baseName)) { - FileUtil.delete(file); - } - } + myMap.deleteFiles(); try { myMap = createMap(myBaseFile); } diff --git a/platform/util/src/com/intellij/util/io/PersistentHashMap.java b/platform/util/src/com/intellij/util/io/PersistentHashMap.java index 8cf3e40ed56c..70cd41364c00 100644 --- a/platform/util/src/com/intellij/util/io/PersistentHashMap.java +++ b/platform/util/src/com/intellij/util/io/PersistentHashMap.java @@ -143,22 +143,29 @@ public class PersistentHashMap extends PersistentEnumerator{ private static File checkDataFiles(final File file) { if (!file.exists()) { - final File dataFile = getDataFile(file); - final String baseName = dataFile.getName(); - final File[] files = dataFile.getParentFile().listFiles(new FileFilter() { - public boolean accept(final File pathname) { - return pathname.getName().startsWith(baseName); - } - }); - if (files != null) { - for (File f : files) { - FileUtil.delete(f); - } - } + deleteFiles(file); } return file; } + public void deleteFiles() { + deleteFiles(myFile); + } + + private static void deleteFiles(File baseFile) { + final String baseName = baseFile.getName(); + final File[] files = baseFile.getParentFile().listFiles(new FileFilter() { + public boolean accept(final File pathname) { + return pathname.getName().startsWith(baseName); + } + }); + if (files != null) { + for (File f : files) { + FileUtil.delete(f); + } + } + } + private static File getDataFile(final File file) { return new File(file.getParentFile(), file.getName() + DATA_FILE_EXTENSION); }