diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/intention/AddAnnotationPsiFix.java b/java/java-analysis-impl/src/com/intellij/codeInsight/intention/AddAnnotationPsiFix.java index a479c0abbfe2..3525da94dab6 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/intention/AddAnnotationPsiFix.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/intention/AddAnnotationPsiFix.java @@ -23,7 +23,6 @@ import com.intellij.lang.findUsages.FindUsagesProvider; import com.intellij.lang.findUsages.LanguageFindUsages; import com.intellij.openapi.command.WriteCommandAction; import com.intellij.openapi.command.undo.UndoUtil; -import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.project.Project; import com.intellij.psi.*; import com.intellij.psi.codeStyle.JavaCodeStyleManager; @@ -34,7 +33,6 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; public class AddAnnotationPsiFix extends LocalQuickFixOnPsiElement { - private static final Logger LOG = Logger.getInstance("#com.intellij.codeInsight.intention.AddAnnotationPsiFix"); protected final String myAnnotation; private final String[] myAnnotationsToRemove; private final PsiNameValuePair[] myPairs; // not used when registering local quick fix @@ -112,7 +110,9 @@ public class AddAnnotationPsiFix extends LocalQuickFixOnPsiElement { if (!PsiUtil.isLanguageLevel5OrHigher(startElement)) return false; final PsiModifierListOwner myModifierListOwner = (PsiModifierListOwner)startElement; - return !AnnotationUtil.isAnnotated(myModifierListOwner, myAnnotation, false, false); + // e.g. PsiTypeParameterImpl doesn't have modifier list + return myModifierListOwner.getModifierList() != null + && !AnnotationUtil.isAnnotated(myModifierListOwner, myAnnotation, false, false); } @Override @@ -129,8 +129,7 @@ public class AddAnnotationPsiFix extends LocalQuickFixOnPsiElement { final ExternalAnnotationsManager annotationsManager = ExternalAnnotationsManager.getInstance(project); final PsiModifierList modifierList = myModifierListOwner.getModifierList(); - LOG.assertTrue(modifierList != null, myModifierListOwner + " ("+myModifierListOwner.getClass()+")"); - if (modifierList.findAnnotation(myAnnotation) != null) return; + if (modifierList == null || modifierList.findAnnotation(myAnnotation) != null) return; final ExternalAnnotationsManager.AnnotationPlace annotationAnnotationPlace = annotationsManager.chooseAnnotationsPlace(myModifierListOwner); if (annotationAnnotationPlace == ExternalAnnotationsManager.AnnotationPlace.NOWHERE) return; if (annotationAnnotationPlace == ExternalAnnotationsManager.AnnotationPlace.EXTERNAL) { @@ -175,7 +174,7 @@ public class AddAnnotationPsiFix extends LocalQuickFixOnPsiElement { } @NotNull - public String[] getAnnotationsToRemove() { + protected String[] getAnnotationsToRemove() { return myAnnotationsToRemove; } }