http://ea.jetbrains.com/browser/ea_problems/17954
authorsweinreuter <sascha.weinreuter@gmail.com>
Tue, 8 Dec 2009 09:29:27 +0000 (10:29 +0100)
committersweinreuter <sascha.weinreuter@gmail.com>
Tue, 8 Dec 2009 09:29:27 +0000 (10:29 +0100)
plugins/xpath/xpath-lang/src/org/intellij/lang/xpath/xslt/util/XsltCodeInsightUtil.java
plugins/xpath/xpath-lang/src/org/intellij/lang/xpath/xslt/validation/inspections/InspectionUtil.java
plugins/xpath/xpath-lang/src/org/intellij/lang/xpath/xslt/validation/inspections/SuppressInspectionAction.java

index 841574be461fdcbc837afa190d8cb732fe45deb0..aef0a89a134fa4aabd26bb565baa51d062570fdd 100644 (file)
@@ -56,7 +56,7 @@ public class XsltCodeInsightUtil {
     }
 
     @Nullable
-    public static XmlTag getTemplateTag(PsiElement location, boolean isExpression, boolean requireName) {
+    public static XmlTag getTemplateTag(@NotNull PsiElement location, boolean isExpression, boolean requireName) {
         PsiElement p = isExpression ? location.getContainingFile().getContext() : location;
         while ((p = PsiTreeUtil.getParentOfType(p, XmlTag.class)) != null) {
             final XmlTag _p = ((XmlTag)p);
@@ -66,18 +66,18 @@ public class XsltCodeInsightUtil {
     }
 
     @Nullable
-    public static XmlTag getTemplateTag(PsiElement location, boolean isExpression) {
+    public static XmlTag getTemplateTag(@NotNull PsiElement location, boolean isExpression) {
         return getTemplateTag(location, isExpression, false);
     }
 
     @Nullable
-    public static XsltTemplate getTemplate(PsiElement location, boolean isExpression) {
+    public static XsltTemplate getTemplate(@NotNull PsiElement location, boolean isExpression) {
         final XmlTag templateTag = getTemplateTag(location, isExpression);
         return templateTag != null ? XsltElementFactory.getInstance().wrapElement(templateTag, XsltTemplate.class) : null;
     }
 
     @Nullable
-    public static PsiElement findFirstRealTagChild(XmlTag xmlTag) {
+    public static PsiElement findFirstRealTagChild(@NotNull XmlTag xmlTag) {
         final PsiElement[] child = new PsiElement[1];
         xmlTag.processElements(new PsiElementProcessor() {
             public boolean execute(PsiElement element) {
index 7442aaa54bfa6df514bf3f1c79569744e8712442..44a83fd170aaea409656a030e7c1c8bd424f9b7a 100644 (file)
@@ -20,15 +20,11 @@ import com.intellij.codeInspection.SuppressIntentionAction;
 import com.intellij.psi.PsiElement;
 import com.intellij.psi.PsiWhiteSpace;
 import com.intellij.psi.util.PsiTreeUtil;
-import com.intellij.psi.xml.XmlComment;
-import com.intellij.psi.xml.XmlDocument;
-import com.intellij.psi.xml.XmlProlog;
-import com.intellij.psi.xml.XmlTag;
-import com.intellij.psi.xml.XmlText;
+import com.intellij.psi.xml.*;
 import com.intellij.xml.util.XmlUtil;
-import org.jetbrains.annotations.NonNls;
-
 import org.intellij.lang.xpath.xslt.util.XsltCodeInsightUtil;
+import org.jetbrains.annotations.NonNls;
+import org.jetbrains.annotations.NotNull;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -104,19 +100,19 @@ public class InspectionUtil {
         final List<SuppressIntentionAction> actions = new ArrayList<SuppressIntentionAction>(4);
 
         actions.add(new SuppressInspectionAction(inspection.getID(), "Suppress for Instruction") {
-            protected XmlTag getAnchor(PsiElement element) {
+            protected XmlTag getAnchor(@NotNull PsiElement element) {
                 return PsiTreeUtil.getContextOfType(element, XmlTag.class, isXPath);
             }
         });
 
         actions.add(new SuppressInspectionAction(inspection.getID(), "Suppress for Template") {
-            protected XmlTag getAnchor(PsiElement element) {
+            protected XmlTag getAnchor(@NotNull PsiElement element) {
                 return XsltCodeInsightUtil.getTemplateTag(element, isXPath);
             }
         });
 
         actions.add(new SuppressInspectionAction(inspection.getID(), "Suppress for Stylesheet") {
-            protected XmlTag getAnchor(PsiElement element) {
+            protected XmlTag getAnchor(@NotNull PsiElement element) {
                 final XmlDocument document = PsiTreeUtil.getContextOfType(element, XmlDocument.class, isXPath);
                 assert document != null;
                 return document.getRootTag();
@@ -124,7 +120,7 @@ public class InspectionUtil {
         });
 
         actions.add(new SuppressInspectionAction(ALL_ID, "Suppress all for Stylesheet") {
-            protected XmlTag getAnchor(PsiElement element) {
+            protected XmlTag getAnchor(@NotNull PsiElement element) {
                 final XmlDocument document = PsiTreeUtil.getContextOfType(element, XmlDocument.class, isXPath);
                 assert document != null;
                 return document.getRootTag();
index 583c189557f9e36b88be833b91991118f27feee6..c54fdfdd032ff3c5062b9b23f1bc25a4d717e4af 100644 (file)
@@ -53,13 +53,15 @@ abstract class SuppressInspectionAction extends SuppressIntentionAction {
     }
 
     @Nullable
-    protected abstract XmlTag getAnchor(PsiElement element);
+    protected abstract XmlTag getAnchor(@NotNull PsiElement element);
 
     public boolean isAvailable(@NotNull Project project, Editor editor, @Nullable PsiElement element) {
-        return getAnchor(element) != null;
+        return element != null && getAnchor(element) != null;
     }
 
     public void invoke(Project project, Editor editor, PsiElement element) throws IncorrectOperationException {
+        if (element == null) return;
+
         final XmlTag anchor = getAnchor(element);
         if (anchor == null) return;