diff --git a/compiler/daemon/daemon-client/daemon-client.iml b/compiler/daemon/daemon-client/daemon-client.iml
index f381935778f..a8aed225985 100644
--- a/compiler/daemon/daemon-client/daemon-client.iml
+++ b/compiler/daemon/daemon-client/daemon-client.iml
@@ -9,6 +9,7 @@
+
diff --git a/compiler/daemon/daemon-client/src/org/jetbrains/kotlin/daemon/client/CompilerCallbackServicesFacadeServer.kt b/compiler/daemon/daemon-client/src/org/jetbrains/kotlin/daemon/client/CompilerCallbackServicesFacadeServer.kt
index fbc1512eee1..e632c6d2ae1 100644
--- a/compiler/daemon/daemon-client/src/org/jetbrains/kotlin/daemon/client/CompilerCallbackServicesFacadeServer.kt
+++ b/compiler/daemon/daemon-client/src/org/jetbrains/kotlin/daemon/client/CompilerCallbackServicesFacadeServer.kt
@@ -26,6 +26,7 @@ import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCompil
import org.jetbrains.kotlin.load.kotlin.incremental.components.JvmPackagePartProto
import org.jetbrains.kotlin.modules.TargetId
import org.jetbrains.kotlin.progress.CompilationCanceledStatus
+import org.jetbrains.kotlin.utils.isProcessCanceledException
import java.rmi.server.UnicastRemoteObject
import kotlin.reflect.full.allSuperclasses
@@ -87,7 +88,7 @@ open class CompilerCallbackServicesFacadeServer(
catch (e: Exception) {
// avoid passing exceptions that may have different serialVersionUID on across rmi border
// removing dependency from openapi (this is obsolete part anyway, and will be removed soon)
- if ((e::class.allSuperclasses + e::class).any { it.qualifiedName == "com.intellij.openapi.progress.ProcessCanceledException" })
+ if (e.isProcessCanceledException())
throw RmiFriendlyCompilationCanceledException()
else throw e
}
diff --git a/core/descriptors/src/org/jetbrains/kotlin/types/TypeSubstitutor.java b/core/descriptors/src/org/jetbrains/kotlin/types/TypeSubstitutor.java
index aefde175efb..8bffa003346 100644
--- a/core/descriptors/src/org/jetbrains/kotlin/types/TypeSubstitutor.java
+++ b/core/descriptors/src/org/jetbrains/kotlin/types/TypeSubstitutor.java
@@ -28,6 +28,7 @@ import org.jetbrains.kotlin.name.FqName;
import org.jetbrains.kotlin.resolve.calls.inference.CapturedTypeConstructorKt;
import org.jetbrains.kotlin.types.typeUtil.TypeUtilsKt;
import org.jetbrains.kotlin.types.typesApproximation.CapturedTypeApproximationKt;
+import org.jetbrains.kotlin.utils.ExceptionUtilsKt;
import java.util.ArrayList;
import java.util.List;
@@ -318,7 +319,7 @@ public class TypeSubstitutor {
return o.toString();
}
catch (Throwable e) {
- if (e.getClass().getName().equals("com.intellij.openapi.progress.ProcessCanceledException")) {
+ if (ExceptionUtilsKt.isProcessCanceledException(e)) {
//noinspection ConstantConditions
throw (RuntimeException) e;
}
diff --git a/core/util.runtime/src/org/jetbrains/kotlin/utils/WrappedValues.java b/core/util.runtime/src/org/jetbrains/kotlin/utils/WrappedValues.java
index d12671a781c..ad135010847 100644
--- a/core/util.runtime/src/org/jetbrains/kotlin/utils/WrappedValues.java
+++ b/core/util.runtime/src/org/jetbrains/kotlin/utils/WrappedValues.java
@@ -78,8 +78,7 @@ public class WrappedValues {
if (value instanceof ThrowableWrapper) {
Throwable originThrowable = ((ThrowableWrapper) value).getThrowable();
- if (throwWrappedProcessCanceledException &&
- originThrowable.getClass().getName().equals("com.intellij.openapi.progress.ProcessCanceledException")) {
+ if (throwWrappedProcessCanceledException && ExceptionUtilsKt.isProcessCanceledException(originThrowable)) {
throw new WrappedProcessCanceledException(originThrowable);
}
diff --git a/plugins/lint/lint-api/lint-api.iml b/plugins/lint/lint-api/lint-api.iml
index 5036eedeb65..e726367da7c 100644
--- a/plugins/lint/lint-api/lint-api.iml
+++ b/plugins/lint/lint-api/lint-api.iml
@@ -13,5 +13,6 @@
+
\ No newline at end of file
diff --git a/plugins/lint/lint-api/src/com/android/tools/klint/client/api/JavaVisitor.java b/plugins/lint/lint-api/src/com/android/tools/klint/client/api/JavaVisitor.java
index f1584b2e45e..e683aea6c7c 100644
--- a/plugins/lint/lint-api/src/com/android/tools/klint/client/api/JavaVisitor.java
+++ b/plugins/lint/lint-api/src/com/android/tools/klint/client/api/JavaVisitor.java
@@ -16,9 +16,6 @@
package com.android.tools.klint.client.api;
-import static com.android.SdkConstants.ANDROID_PKG;
-import static com.android.SdkConstants.R_CLASS;
-
import com.android.annotations.NonNull;
import com.android.annotations.Nullable;
import com.android.annotations.VisibleForTesting;
@@ -31,90 +28,13 @@ import com.android.tools.klint.detector.api.Detector.XmlScanner;
import com.android.tools.klint.detector.api.JavaContext;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
+import lombok.ast.*;
+import org.jetbrains.kotlin.utils.ExceptionUtilsKt;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
-import lombok.ast.AlternateConstructorInvocation;
-import lombok.ast.Annotation;
-import lombok.ast.AnnotationDeclaration;
-import lombok.ast.AnnotationElement;
-import lombok.ast.AnnotationMethodDeclaration;
-import lombok.ast.AnnotationValueArray;
-import lombok.ast.ArrayAccess;
-import lombok.ast.ArrayCreation;
-import lombok.ast.ArrayDimension;
-import lombok.ast.ArrayInitializer;
-import lombok.ast.Assert;
-import lombok.ast.AstVisitor;
-import lombok.ast.BinaryExpression;
-import lombok.ast.Block;
-import lombok.ast.BooleanLiteral;
-import lombok.ast.Break;
-import lombok.ast.Case;
-import lombok.ast.Cast;
-import lombok.ast.Catch;
-import lombok.ast.CharLiteral;
-import lombok.ast.ClassDeclaration;
-import lombok.ast.ClassLiteral;
-import lombok.ast.Comment;
-import lombok.ast.CompilationUnit;
-import lombok.ast.ConstructorDeclaration;
-import lombok.ast.ConstructorInvocation;
-import lombok.ast.Continue;
-import lombok.ast.Default;
-import lombok.ast.DoWhile;
-import lombok.ast.EmptyDeclaration;
-import lombok.ast.EmptyStatement;
-import lombok.ast.EnumConstant;
-import lombok.ast.EnumDeclaration;
-import lombok.ast.EnumTypeBody;
-import lombok.ast.Expression;
-import lombok.ast.ExpressionStatement;
-import lombok.ast.FloatingPointLiteral;
-import lombok.ast.For;
-import lombok.ast.ForEach;
-import lombok.ast.ForwardingAstVisitor;
-import lombok.ast.Identifier;
-import lombok.ast.If;
-import lombok.ast.ImportDeclaration;
-import lombok.ast.InlineIfExpression;
-import lombok.ast.InstanceInitializer;
-import lombok.ast.InstanceOf;
-import lombok.ast.IntegralLiteral;
-import lombok.ast.InterfaceDeclaration;
-import lombok.ast.KeywordModifier;
-import lombok.ast.LabelledStatement;
-import lombok.ast.MethodDeclaration;
-import lombok.ast.MethodInvocation;
-import lombok.ast.Modifiers;
-import lombok.ast.Node;
-import lombok.ast.NormalTypeBody;
-import lombok.ast.NullLiteral;
-import lombok.ast.PackageDeclaration;
-import lombok.ast.Return;
-import lombok.ast.Select;
-import lombok.ast.StaticInitializer;
-import lombok.ast.StringLiteral;
-import lombok.ast.Super;
-import lombok.ast.SuperConstructorInvocation;
-import lombok.ast.Switch;
-import lombok.ast.Synchronized;
-import lombok.ast.This;
-import lombok.ast.Throw;
-import lombok.ast.Try;
-import lombok.ast.TypeReference;
-import lombok.ast.TypeReferencePart;
-import lombok.ast.TypeVariable;
-import lombok.ast.UnaryExpression;
-import lombok.ast.VariableDeclaration;
-import lombok.ast.VariableDefinition;
-import lombok.ast.VariableDefinitionEntry;
-import lombok.ast.VariableReference;
-import lombok.ast.While;
+import static com.android.SdkConstants.ANDROID_PKG;
+import static com.android.SdkConstants.R_CLASS;
/**
* Specialized visitor for running detectors on a Java AST.
@@ -291,7 +211,7 @@ public class JavaVisitor {
// Attempting to access PSI during startup before indices are ready; ignore these.
// See http://b.android.com/176644 for an example.
return;
- } else if (e.getClass().getSimpleName().equals("ProcessCanceledException")) {
+ } else if (ExceptionUtilsKt.isProcessCanceledException(e)) {
// Cancelling inspections in the IDE
context.getDriver().cancel();
return;