IDEA-73378 AIOOBE at ClsFileImpl.getMirror() on opening some .class files

This commit is contained in:
Maxim.Mossienko
2011-08-22 21:37:31 +04:00
parent fcafdf45d3
commit 7f2720708b
@@ -280,12 +280,13 @@ public class ClsFileImpl extends ClsRepositoryPsiElement<PsiClassHolderFileStub>
public PsiElement getMirror() {
synchronized (MIRROR_LOCK) {
if (myMirrorFileElement == null) {
FileDocumentManager documentManager = FileDocumentManager.getInstance();
final Document document = documentManager.getDocument(getVirtualFile());
VirtualFile virtualFile = getVirtualFile();
final Document document = FileDocumentManager.getInstance().getDocument(virtualFile);
String text = document.getText();
String ext = StdFileTypes.JAVA.getDefaultExtension();
PsiClass aClass = getClasses()[0];
String fileName = aClass.getName() + "." + ext;
PsiClass[] classes = getClasses();
String fileName = (classes.length > 0 ? classes[0].getName(): virtualFile.getNameWithoutExtension()) + "." + ext;
PsiManager manager = getManager();
PsiFile mirror = PsiFileFactory.getInstance(manager.getProject()).createFileFromText(fileName, StdLanguages.JAVA, text, false, false);
final ASTNode mirrorTreeElement = SourceTreeToPsiMap.psiElementToTree(mirror);