catch abstract method error to preserve plugins compatibility

EA-29421 - AME: TestIconProvider.getIcon
This commit is contained in:
anna
2011-08-26 15:58:35 +02:00
parent ef6071d1ca
commit a7b59dff2b
2 changed files with 16 additions and 4 deletions
@@ -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);
}
@@ -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;