diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/maturity/ThrowablePrintStackTraceInspectionBase.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/maturity/ThrowablePrintStackTraceInspectionBase.java index 69c9e5642457..621015a685fe 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/maturity/ThrowablePrintStackTraceInspectionBase.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/maturity/ThrowablePrintStackTraceInspectionBase.java @@ -16,6 +16,7 @@ package com.siyeh.ig.maturity; import com.intellij.psi.*; +import com.intellij.psi.util.InheritanceUtil; import com.siyeh.HardcodedMethodConstants; import com.siyeh.InspectionGadgetsBundle; import com.siyeh.ig.BaseInspection; @@ -69,8 +70,7 @@ public class ThrowablePrintStackTraceInspectionBase extends BaseInspection { if (containingClass == null) { return; } - final String name = containingClass.getQualifiedName(); - if (!CommonClassNames.JAVA_LANG_THROWABLE.equals(name)) { + if (!InheritanceUtil.isInheritor(containingClass, false, CommonClassNames.JAVA_LANG_THROWABLE)) { return; } registerMethodCallError(expression, expression); diff --git a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/maturity/ThrowablePrintStackTraceInspectionTest.java b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/maturity/ThrowablePrintStackTraceInspectionTest.java index 5928bb4cc53d..5e30afe17cd2 100644 --- a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/maturity/ThrowablePrintStackTraceInspectionTest.java +++ b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/maturity/ThrowablePrintStackTraceInspectionTest.java @@ -37,6 +37,16 @@ public class ThrowablePrintStackTraceInspectionTest extends LightInspectionTestC "}"); } + public void testPrintStacktraceOverridden() throws Exception { + addEnvironmentClass("public class FException extends Exception {\n" + + " @Override\n" + + " public void printStackTrace() {\n" + + " super.printStackTrace();\n" + + " }\n" + + "}\n"); + doStatementTest("new FException()./*Call to 'printStackTrace()' should probably be replaced with more robust logging*/printStackTrace/**/();"); + } + @Override protected InspectionProfileEntry getInspection() { return new ThrowablePrintStackTraceInspection();