mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
handle null argument in ChangeUtil.generateTreeElement (EA-72435 - IAE: PsiUtilCore.ensureValid)
This commit is contained in:
@@ -49,7 +49,7 @@ public class JavaTreeGenerator implements TreeGenerator {
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public TreeElement generateTreeFor(PsiElement original, final CharTable table, final PsiManager manager) {
|
||||
public TreeElement generateTreeFor(@NotNull PsiElement original, @NotNull final CharTable table, @NotNull final PsiManager manager) {
|
||||
if (original instanceof PsiKeyword || original instanceof PsiIdentifier) {
|
||||
final String text = original.getText();
|
||||
return createLeafFromText(text, table, manager, original, ((PsiJavaToken)original).getTokenType());
|
||||
|
||||
@@ -144,7 +144,8 @@ public class ChangeUtil {
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static TreeElement generateTreeElement(PsiElement original, CharTable table, final PsiManager manager) {
|
||||
public static TreeElement generateTreeElement(@Nullable PsiElement original, @NotNull CharTable table, @NotNull final PsiManager manager) {
|
||||
if (original == null) return null;
|
||||
PsiUtilCore.ensureValid(original);
|
||||
if (SourceTreeToPsiMap.hasTreeElement(original)) {
|
||||
return copyElement((TreeElement)SourceTreeToPsiMap.psiElementToTree(original), table);
|
||||
|
||||
@@ -23,11 +23,12 @@ import com.intellij.openapi.extensions.ExtensionPointName;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiManager;
|
||||
import com.intellij.util.CharTable;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public interface TreeGenerator {
|
||||
ExtensionPointName<TreeGenerator> EP_NAME = ExtensionPointName.create("com.intellij.treeGenerator");
|
||||
|
||||
@Nullable
|
||||
TreeElement generateTreeFor(PsiElement original, CharTable table, final PsiManager manager);
|
||||
TreeElement generateTreeFor(@NotNull PsiElement original, @NotNull CharTable table, @NotNull final PsiManager manager);
|
||||
}
|
||||
+2
-1
@@ -20,12 +20,13 @@ import com.intellij.psi.PsiManager;
|
||||
import com.intellij.psi.impl.source.tree.TreeElement;
|
||||
import com.intellij.psi.impl.source.tree.TreeGenerator;
|
||||
import com.intellij.util.CharTable;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.GroovyPsiElementFactory;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.auxiliary.modifiers.GrModifierList;
|
||||
|
||||
public class GroovyTreeGenerator implements TreeGenerator {
|
||||
@Override
|
||||
public TreeElement generateTreeFor(PsiElement original, CharTable table, PsiManager manager) {
|
||||
public TreeElement generateTreeFor(@NotNull PsiElement original, @NotNull CharTable table, @NotNull PsiManager manager) {
|
||||
|
||||
if (original instanceof GrModifierList) {
|
||||
final String text = original.getText();
|
||||
|
||||
Reference in New Issue
Block a user