diff --git a/java/java-impl/src/com/intellij/codeInspection/ex/EntryPointsManagerImpl.java b/java/java-impl/src/com/intellij/codeInspection/ex/EntryPointsManagerImpl.java index c1d316ff0914..0b0c60e7395d 100644 --- a/java/java-impl/src/com/intellij/codeInspection/ex/EntryPointsManagerImpl.java +++ b/java/java-impl/src/com/intellij/codeInspection/ex/EntryPointsManagerImpl.java @@ -432,7 +432,7 @@ public class EntryPointsManagerImpl implements PersistentStateComponent myAddNonJavaEntries = addNonJavaEntries; } - public boolean isEntryPoint(PsiModifierListOwner element) { + public boolean isEntryPoint(@NotNull PsiModifierListOwner element) { return AnnotationUtil.isAnnotated(element, ADDITIONAL_ANNOTATIONS) || AnnotationUtil.isAnnotated(element, getAdditionalAnnotations()); } diff --git a/java/java-impl/src/com/intellij/codeInspection/unusedParameters/UnusedParametersInspection.java b/java/java-impl/src/com/intellij/codeInspection/unusedParameters/UnusedParametersInspection.java index aed39b1e7802..2e32ea1a744d 100644 --- a/java/java-impl/src/com/intellij/codeInspection/unusedParameters/UnusedParametersInspection.java +++ b/java/java-impl/src/com/intellij/codeInspection/unusedParameters/UnusedParametersInspection.java @@ -74,7 +74,9 @@ public class UnusedParametersInspection extends GlobalJavaInspectionTool { if ((refMethod.isAbstract() || refMethod.getOwnerClass().isInterface()) && refMethod.getDerivedMethods().isEmpty()) return null; if (RefUtil.isEntryPoint(refMethod)) return null; - if (EntryPointsManagerImpl.getInstance(manager.getProject()).isEntryPoint(refMethod.getElement())) return null; + + final PsiModifierListOwner element = refMethod.getElement(); + if (element != null && EntryPointsManagerImpl.getInstance(manager.getProject()).isEntryPoint(element)) return null; if (refMethod.isAppMain()) return null; diff --git a/java/java-impl/src/com/intellij/refactoring/extractSuperclass/JavaExtractSuperBaseDialog.java b/java/java-impl/src/com/intellij/refactoring/extractSuperclass/JavaExtractSuperBaseDialog.java index 2e9b83218969..674b6b16fe65 100644 --- a/java/java-impl/src/com/intellij/refactoring/extractSuperclass/JavaExtractSuperBaseDialog.java +++ b/java/java-impl/src/com/intellij/refactoring/extractSuperclass/JavaExtractSuperBaseDialog.java @@ -125,7 +125,7 @@ public abstract class JavaExtractSuperBaseDialog extends ExtractSuperBaseDialog< protected void preparePackage() throws OperationFailedException { final String targetPackageName = getTargetPackageName(); final JavaPsiFacade psiFacade = JavaPsiFacade.getInstance(myProject); - if (!psiFacade.getNameHelper().isIdentifier(targetPackageName)) { + if (!psiFacade.getNameHelper().isQualifiedName(targetPackageName)) { throw new OperationFailedException("Invalid package name: " + targetPackageName); } final PsiPackage aPackage = psiFacade.findPackage(targetPackageName); diff --git a/platform/lang-impl/src/com/intellij/codeInspection/ex/DescriptorProviderInspection.java b/platform/lang-impl/src/com/intellij/codeInspection/ex/DescriptorProviderInspection.java index 2d8d5ec100a3..6503e871fc90 100644 --- a/platform/lang-impl/src/com/intellij/codeInspection/ex/DescriptorProviderInspection.java +++ b/platform/lang-impl/src/com/intellij/codeInspection/ex/DescriptorProviderInspection.java @@ -187,6 +187,14 @@ public abstract class DescriptorProviderInspection extends InspectionTool implem getIgnoredElements().put(refEntity, problemDescriptors); } + public void ignoreCurrentElementProblem(RefEntity refEntity, CommonProblemDescriptor descriptor) { + CommonProblemDescriptor[] descriptors = getIgnoredElements().get(refEntity); + if (descriptors == null) { + descriptors = new CommonProblemDescriptor[0]; + } + getIgnoredElements().put(refEntity, ArrayUtil.append(descriptors, descriptor)); + } + private static boolean isIgnoreProblem(QuickFix[] problemFixes, Set fixes, int idx){ if (problemFixes == null || fixes == null) { return true; @@ -451,6 +459,17 @@ public abstract class DescriptorProviderInspection extends InspectionTool implem return false; } + public boolean isProblemResolved(RefEntity refEntity, CommonProblemDescriptor descriptor) { + if (getIgnoredElements() == null) return false; + for (RefEntity entity : getIgnoredElements().keySet()) { + if (Comparing.equal(entity, refEntity)) { + final CommonProblemDescriptor[] descriptors = getIgnoredElements().get(refEntity); + return ArrayUtil.contains(descriptor, descriptors); + } + } + return false; + } + public FileStatus getProblemStatus(final CommonProblemDescriptor descriptor) { final GlobalInspectionContextImpl context = getContext(); if (context != null && context.getUIOptions().SHOW_DIFF_WITH_PREVIOUS_RUN){ diff --git a/platform/lang-impl/src/com/intellij/codeInspection/ui/ProblemDescriptionNode.java b/platform/lang-impl/src/com/intellij/codeInspection/ui/ProblemDescriptionNode.java index 2610ab6d0fb5..b92dab9a6384 100644 --- a/platform/lang-impl/src/com/intellij/codeInspection/ui/ProblemDescriptionNode.java +++ b/platform/lang-impl/src/com/intellij/codeInspection/ui/ProblemDescriptionNode.java @@ -95,11 +95,11 @@ public class ProblemDescriptionNode extends InspectionTreeNode { public boolean isResolved() { - return myElement instanceof RefElement && myTool.isElementIgnored(myElement); + return myElement instanceof RefElement && myTool.isProblemResolved(myElement, getDescriptor()); } public void ignoreElement() { - myTool.ignoreCurrentElement(getElement()); + myTool.ignoreCurrentElementProblem(getElement(), getDescriptor()); } public void amnesty() {