diff --git a/java/execution/impl/src/com/intellij/execution/junit/InheritorChooser.java b/java/execution/impl/src/com/intellij/execution/junit/InheritorChooser.java index e68e0647a63c..1c2ad30996d3 100644 --- a/java/execution/impl/src/com/intellij/execution/junit/InheritorChooser.java +++ b/java/execution/impl/src/com/intellij/execution/junit/InheritorChooser.java @@ -15,7 +15,9 @@ */ package com.intellij.execution.junit; +import com.intellij.execution.Location; import com.intellij.execution.actions.ConfigurationContext; +import com.intellij.execution.junit2.info.MethodLocation; import com.intellij.ide.util.PsiClassListCellRenderer; import com.intellij.openapi.progress.ProgressManager; import com.intellij.openapi.ui.popup.JBPopupFactory; @@ -51,6 +53,13 @@ public class InheritorChooser { final PsiMethod psiMethod, final PsiClass containingClass) { if (containingClass != null && containingClass.hasModifierProperty(PsiModifier.ABSTRACT)) { + final Location location = context.getLocation(); + if (location instanceof MethodLocation) { + final PsiClass aClass = ((MethodLocation)location).getContainingClass(); + if (aClass != null && !aClass.hasModifierProperty(PsiModifier.ABSTRACT)) { + return false; + } + } final List classes = new ArrayList(); if (!ProgressManager.getInstance().runProcessWithProgressSynchronously(new Runnable() { @Override diff --git a/platform/lang-api/src/com/intellij/execution/actions/ConfigurationContext.java b/platform/lang-api/src/com/intellij/execution/actions/ConfigurationContext.java index ad4ab2353b8d..d4d70c074a77 100644 --- a/platform/lang-api/src/com/intellij/execution/actions/ConfigurationContext.java +++ b/platform/lang-api/src/com/intellij/execution/actions/ConfigurationContext.java @@ -112,7 +112,7 @@ public class ConfigurationContext { return myConfiguration; } - Location getLocation() { + public Location getLocation() { return myLocation; }