diff --git a/java/java-psi-impl/src/com/intellij/core/CoreJavaFileManager.java b/java/java-psi-impl/src/com/intellij/core/CoreJavaFileManager.java index 8925fca42e3c..a3672df32892 100644 --- a/java/java-psi-impl/src/com/intellij/core/CoreJavaFileManager.java +++ b/java/java-psi-impl/src/com/intellij/core/CoreJavaFileManager.java @@ -116,13 +116,18 @@ public class CoreJavaFileManager extends PackageIndex implements JavaFileManager @Nullable private PsiClass findClassInClasspathEntry(String qName, File file) { - String fileName = qName.replace(".", "/") + ".class"; + // TODO handle inner classes correctly + String fileName = qName.replace(".", "/") + ".java"; VirtualFile classFile = findUnderClasspathEntry(file, fileName); - + if (classFile == null) { + fileName = qName.replace(".", "/") + ".class"; + classFile = findUnderClasspathEntry(file, fileName); + } + if (classFile != null) { PsiFile psiFile = myPsiManager.findFile(classFile); if (!(psiFile instanceof PsiJavaFile)) { - throw new UnsupportedOperationException("no java file for .class"); + throw new UnsupportedOperationException("no java file for " + fileName); } final PsiClass[] classes = ((PsiJavaFile)psiFile).getClasses(); if (classes.length == 1) {