From a7b59dff2b118929a6abdd3c01e01671f4064d14 Mon Sep 17 00:00:00 2001 From: anna Date: Fri, 26 Aug 2011 15:56:50 +0200 Subject: [PATCH] catch abstract method error to preserve plugins compatibility EA-29421 - AME: TestIconProvider.getIcon --- .../intellij/testIntegration/TestFramework.java | 6 ++++++ .../execution/testframework/TestIconProvider.java | 14 ++++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/platform/lang-api/src/com/intellij/testIntegration/TestFramework.java b/platform/lang-api/src/com/intellij/testIntegration/TestFramework.java index 0f51a3c7d14f..5a7fc14c0ae7 100644 --- a/platform/lang-api/src/com/intellij/testIntegration/TestFramework.java +++ b/platform/lang-api/src/com/intellij/testIntegration/TestFramework.java @@ -62,7 +62,13 @@ public interface TestFramework { FileTemplateDescriptor getTestMethodFileTemplateDescriptor(); + /** + * should be checked for abstract method error + */ boolean isIgnoredMethod(PsiElement element); + /** + * should be checked for abstract method error + */ boolean isTestMethod(PsiElement element); } diff --git a/platform/testRunner/src/com/intellij/execution/testframework/TestIconProvider.java b/platform/testRunner/src/com/intellij/execution/testframework/TestIconProvider.java index 325c375fbdba..7133a8e12c24 100644 --- a/platform/testRunner/src/com/intellij/execution/testframework/TestIconProvider.java +++ b/platform/testRunner/src/com/intellij/execution/testframework/TestIconProvider.java @@ -34,15 +34,21 @@ public class TestIconProvider extends IconProvider { final TestFramework[] testFrameworks = Extensions.getExtensions(TestFramework.EXTENSION_NAME); for (TestFramework framework : testFrameworks) { - if (framework.isIgnoredMethod(element)) { - return TestsUIUtil.loadIcon("ignoredTest"); + try { + if (framework.isIgnoredMethod(element)) { + return TestsUIUtil.loadIcon("ignoredTest"); + } } + catch (AbstractMethodError ignored) {} } for (TestFramework framework : testFrameworks) { - if (framework.isTestMethod(element)) { - return new LayeredIcon(PlatformIcons.METHOD_ICON, TestsUIUtil.loadIcon("testMark")); + try { + if (framework.isTestMethod(element)) { + return new LayeredIcon(PlatformIcons.METHOD_ICON, TestsUIUtil.loadIcon("testMark")); + } } + catch (AbstractMethodError ignore) {} } return null;