Fix for IDEA-121307 Cannot create new file (StubVirtualFile throws an exception on isDirectory)

This commit is contained in:
Rustam Vishnyakov
2014-02-27 15:56:19 +04:00
parent ad552edb7d
commit 7eebbf441e
2 changed files with 5 additions and 3 deletions
@@ -28,6 +28,7 @@ import com.intellij.openapi.roots.ex.ProjectRootManagerEx;
import com.intellij.openapi.util.EmptyRunnable;
import com.intellij.openapi.util.Ref;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.vfs.newvfs.impl.StubVirtualFile;
import com.intellij.util.containers.ConcurrentHashMap;
import com.intellij.util.indexing.FileBasedIndex;
import org.jetbrains.annotations.NotNull;
@@ -51,7 +52,7 @@ public class EnforcedPlainTextFileTypeManager implements ProjectManagerListener
}
public boolean isMarkedAsPlainText(VirtualFile file) {
if (file.isDirectory()) return false;
if (file instanceof StubVirtualFile || file.isDirectory()) return false;
synchronized (mySetsInitialized) {
if (!mySetsInitialized.get()) {
initPlainTextFileSets();
@@ -73,7 +74,7 @@ public class EnforcedPlainTextFileTypeManager implements ProjectManagerListener
}
public static boolean isApplicableFor(@NotNull VirtualFile file) {
if (file.isDirectory()) return false;
if (file instanceof StubVirtualFile || file.isDirectory()) return false;
FileType originalType = FileTypeManager.getInstance().getFileTypeByFileName(file.getName());
return !originalType.isBinary() && originalType != FileTypes.PLAIN_TEXT && originalType != StdFileTypes.JAVA;
}
@@ -19,6 +19,7 @@ import com.intellij.openapi.components.PersistentStateComponent;
import com.intellij.openapi.vfs.VfsUtilCore;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.vfs.VirtualFileManager;
import com.intellij.openapi.vfs.newvfs.impl.StubVirtualFile;
import com.intellij.util.containers.HashSet;
import org.jdom.Attribute;
import org.jdom.Element;
@@ -36,7 +37,7 @@ public class PersistentFileSetManager implements PersistentStateComponent<Elemen
private final Set<VirtualFile> myFiles = new HashSet<VirtualFile>();
protected boolean addFile(VirtualFile file) {
if (file.isDirectory()) return false;
if (file instanceof StubVirtualFile || file.isDirectory()) return false;
myFiles.add(file);
return true;
}