dedicated exception to flag cancellation (IDEA-CR-16749)

This commit is contained in:
Anna.Kozlova
2016-12-13 15:47:37 +01:00
parent 17e4f13235
commit b02b6bef9d
6 changed files with 13 additions and 12 deletions
@@ -24,7 +24,6 @@ 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.progress.ProcessCanceledException;
import com.intellij.openapi.project.Project;
import com.intellij.psi.*;
import com.intellij.psi.codeStyle.JavaCodeStyleManager;
@@ -141,7 +140,7 @@ public class AddAnnotationPsiFix extends LocalQuickFixOnPsiElement {
try {
annotationsManager.annotateExternally(myModifierListOwner, myAnnotation, file, myPairs);
}
catch (ProcessCanceledException ignored) {}
catch (ExternalAnnotationsManager.CanceledConfigurationException ignored) {}
}
else {
final PsiFile containingFile = myModifierListOwner.getContainingFile();
@@ -43,7 +43,6 @@ import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.fileEditor.FileDocumentManager;
import com.intellij.openapi.fileEditor.FileEditorManager;
import com.intellij.openapi.progress.ProcessCanceledException;
import com.intellij.openapi.project.DumbService;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.project.ProjectBundle;
@@ -127,7 +126,7 @@ public class ExternalAnnotationsManagerImpl extends ReadableExternalAnnotationsM
public void annotateExternally(@NotNull final PsiModifierListOwner listOwner,
@NotNull final String annotationFQName,
@NotNull final PsiFile fromFile,
@Nullable final PsiNameValuePair[] value) throws ProcessCanceledException {
@Nullable final PsiNameValuePair[] value) throws CanceledConfigurationException {
Application application = ApplicationManager.getApplication();
application.assertIsDispatchThread();
LOG.assertTrue(!application.isWriteAccessAllowed());
@@ -162,7 +161,7 @@ public class ExternalAnnotationsManagerImpl extends ReadableExternalAnnotationsM
DumbService.getInstance(project).setAlternativeResolveEnabled(true);
try {
if (!setupRootAndAnnotateExternally(entry, project, listOwner, annotationFQName, fromFile, packageName, value)) {
throw new ProcessCanceledException();
throw CanceledConfigurationException.INSTANCE;
}
}
finally {
@@ -24,7 +24,6 @@ import com.intellij.codeInsight.intention.AddAnnotationPsiFix;
import com.intellij.codeInsight.intention.LowPriorityAction;
import com.intellij.codeInsight.intention.impl.BaseIntentionAction;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.progress.ProcessCanceledException;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.DialogBuilder;
import com.intellij.openapi.ui.Messages;
@@ -129,7 +128,7 @@ public class EditContractIntention extends BaseIntentionAction implements LowPri
manager.annotateExternally(method, ControlFlowAnalyzer.ORG_JETBRAINS_ANNOTATIONS_CONTRACT, method.getContainingFile(),
mockAnno.getParameterList().getAttributes());
}
catch (ProcessCanceledException ignored) {}
catch (ExternalAnnotationsManager.CanceledConfigurationException ignored) {}
}
DaemonCodeAnalyzer.getInstance(project).restart();
}
@@ -16,7 +16,6 @@
package com.intellij.codeInsight;
import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.progress.ProcessCanceledException;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.NotNullLazyKey;
import com.intellij.psi.*;
@@ -57,7 +56,7 @@ public abstract class ExternalAnnotationsManager {
public abstract void annotateExternally(@NotNull PsiModifierListOwner listOwner,
@NotNull String annotationFQName,
@NotNull PsiFile fromFile,
@Nullable PsiNameValuePair[] value) throws ProcessCanceledException;
@Nullable PsiNameValuePair[] value) throws CanceledConfigurationException;
public abstract boolean deannotate(@NotNull PsiModifierListOwner listOwner, @NotNull String annotationFQN);
@@ -70,4 +69,10 @@ public abstract class ExternalAnnotationsManager {
@Nullable
public abstract List<PsiFile> findExternalAnnotationsFiles(@NotNull PsiModifierListOwner listOwner);
public static class CanceledConfigurationException extends RuntimeException {
public static final CanceledConfigurationException INSTANCE = new CanceledConfigurationException();
private CanceledConfigurationException() {}
}
}
@@ -19,7 +19,6 @@ import com.intellij.lang.PsiBuilder;
import com.intellij.lang.java.parser.JavaParser;
import com.intellij.lang.java.parser.JavaParserUtil;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.progress.ProcessCanceledException;
import com.intellij.openapi.util.Condition;
import com.intellij.openapi.util.Key;
import com.intellij.openapi.util.LowMemoryWatcher;
@@ -316,7 +315,7 @@ public abstract class BaseExternalAnnotationsManager extends ExternalAnnotations
public void annotateExternally(@NotNull PsiModifierListOwner listOwner,
@NotNull String annotationFQName,
@NotNull PsiFile fromFile,
@Nullable PsiNameValuePair[] value) throws ProcessCanceledException {
@Nullable PsiNameValuePair[] value) throws CanceledConfigurationException {
throw new UnsupportedOperationException();
}
@@ -132,7 +132,7 @@ public class AnnotateOverriddenMethodsIntention extends MutablyNamedIntention {
}
}
}
catch (ProcessCanceledException ignored) {
catch (ExternalAnnotationsManager.CanceledConfigurationException ignored) {
//escape on configuring root cancel further annotations
}
if (!prepare.isEmpty()) {