diff --git a/java/java-psi-api/src/com/intellij/psi/util/PsiUtil.java b/java/java-psi-api/src/com/intellij/psi/util/PsiUtil.java index 120525e25978..1fac9d570871 100644 --- a/java/java-psi-api/src/com/intellij/psi/util/PsiUtil.java +++ b/java/java-psi-api/src/com/intellij/psi/util/PsiUtil.java @@ -837,13 +837,15 @@ public final class PsiUtil extends PsiUtilCore { if (element instanceof PsiDirectory) return JavaDirectoryService.getInstance().getLanguageLevel((PsiDirectory)element); final PsiFile file = element.getContainingFile(); if (file == null) { - return LanguageLevelProjectExtension.getInstance(element.getProject()).getLanguageLevel(); + final LanguageLevelProjectExtension instance = LanguageLevelProjectExtension.getInstance(element.getProject()); + return instance != null ? instance.getLanguageLevel() : LanguageLevel.HIGHEST; } if (!(file instanceof PsiJavaFile)) { final PsiElement context = file.getContext(); if (context != null) return getLanguageLevel(context); - return LanguageLevelProjectExtension.getInstance(file.getProject()).getLanguageLevel(); + final LanguageLevelProjectExtension instance = LanguageLevelProjectExtension.getInstance(file.getProject()); + return instance != null ? instance.getLanguageLevel() : LanguageLevel.HIGHEST; } return ((PsiJavaFile)file).getLanguageLevel(); diff --git a/java/java-psi-impl/src/com/intellij/lang/java/parser/JavaParserUtil.java b/java/java-psi-impl/src/com/intellij/lang/java/parser/JavaParserUtil.java index 95a1f8b335d8..5d8e40b80586 100644 --- a/java/java-psi-impl/src/com/intellij/lang/java/parser/JavaParserUtil.java +++ b/java/java-psi-impl/src/com/intellij/lang/java/parser/JavaParserUtil.java @@ -18,6 +18,7 @@ package com.intellij.lang.java.parser; import com.intellij.codeInsight.daemon.JavaErrorMessages; import com.intellij.lang.*; import com.intellij.lang.impl.PsiBuilderAdapter; +import com.intellij.lang.java.JavaLanguage; import com.intellij.lang.java.JavaParserDefinition; import com.intellij.lexer.JavaDocLexer; import com.intellij.lexer.Lexer; @@ -169,7 +170,9 @@ public class JavaParserUtil { final PsiBuilderFactory factory = PsiBuilderFactory.getInstance(); final LanguageLevel level = PsiUtil.getLanguageLevel(psi); final Lexer lexer = JavaParserDefinition.createLexer(level); - final PsiBuilder builder = factory.createBuilder(project, chameleon, lexer, psi.getLanguage(), text); + Language language = psi.getLanguage(); + if (!language.isKindOf(JavaLanguage.INSTANCE)) language = JavaLanguage.INSTANCE; + final PsiBuilder builder = factory.createBuilder(project, chameleon, lexer, language, text); setLanguageLevel(builder, level); return builder;