diff --git a/plugins/InspectionGadgets/src/com/siyeh/InspectionGadgetsBundle.properties b/plugins/InspectionGadgets/src/com/siyeh/InspectionGadgetsBundle.properties
index e683df43c14e..283cac917efd 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/InspectionGadgetsBundle.properties
+++ b/plugins/InspectionGadgets/src/com/siyeh/InspectionGadgetsBundle.properties
@@ -1689,8 +1689,8 @@ assertequals.may.be.assertsame.problem.descriptor=#ref() may be 'as
logger.initialized.with.foreign.class.quickfix=Replace with ''{0}.class''
logger.initialized.with.foreign.class.problem.descriptor=Logger initializer with foreign class #ref #loc
logger.initialized.with.foreign.class.display.name=Logger initialized with foreign class
-logger.factory.methods.name=Logger factory methods
-logger.factory.class.names=Logger factory class names
+logger.factory.method.name=Logger factory method name
+logger.factory.class.name=Logger factory class name
make.static.final.quickfix=Make ''{0}'' static final
logging.condition.disagrees.with.log.statement.display.name=Logging condition does not match log statement
logging.condition.disagrees.with.log.statement.problem.descriptor=Logging condition #ref() does not match ''{0}()'' log statement #loc
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/logging/LoggerInitializedWithForeignClassInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/logging/LoggerInitializedWithForeignClassInspection.java
index 1e5f57ce0650..190d8369f473 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/logging/LoggerInitializedWithForeignClassInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/logging/LoggerInitializedWithForeignClassInspection.java
@@ -42,8 +42,9 @@ import java.util.List;
public class LoggerInitializedWithForeignClassInspection extends BaseInspection {
- @NonNls private static final String DEFAULT_LOGGER_CLASS_NAMES = "org.apache.log4j.Logger,org.slf4j.LoggerFactory";
- @NonNls private static final String DEFAULT_FACTORY_METHOD_NAMES = "getLogger,getLogger";
+ @NonNls private static final String DEFAULT_LOGGER_CLASS_NAMES =
+ "org.apache.log4j.Logger,org.slf4j.LoggerFactory,org.apache.commons.logging.LogFactory,java.util.logging.Logger";
+ @NonNls private static final String DEFAULT_FACTORY_METHOD_NAMES = "getLogger,getLogger,getLog,getLogger";
@SuppressWarnings({"PublicField"})
public String loggerClassName = DEFAULT_LOGGER_CLASS_NAMES;
@@ -69,8 +70,8 @@ public class LoggerInitializedWithForeignClassInspection extends BaseInspection
public JComponent createOptionsPanel() {
final ListTable table = new ListTable(
new ListWrappingTableModel(Arrays.asList(loggerFactoryClassNames, loggerFactoryMethodNames),
- InspectionGadgetsBundle.message("logger.factory.class.names"),
- InspectionGadgetsBundle.message("logger.factory.methods.name")));
+ InspectionGadgetsBundle.message("logger.factory.class.name"),
+ InspectionGadgetsBundle.message("logger.factory.method.name")));
return UiUtils.createAddRemovePanel(table);
}
@@ -117,7 +118,27 @@ public class LoggerInitializedWithForeignClassInspection extends BaseInspection
@Override
public void visitClassObjectAccessExpression(PsiClassObjectAccessExpression expression) {
super.visitClassObjectAccessExpression(expression);
- final PsiElement parent = expression.getParent();
+ PsiElement parent = expression.getParent();
+ if (parent instanceof PsiReferenceExpression) {
+ final PsiReferenceExpression referenceExpression = (PsiReferenceExpression)parent;
+ if (!expression.equals(referenceExpression.getQualifierExpression())) {
+ return;
+ }
+ final String name = referenceExpression.getReferenceName();
+ if (!"getName".equals(name)) {
+ return;
+ }
+ final PsiElement grandParent = referenceExpression.getParent();
+ if (!(grandParent instanceof PsiMethodCallExpression)) {
+ return;
+ }
+ final PsiMethodCallExpression methodCallExpression = (PsiMethodCallExpression)grandParent;
+ final PsiExpressionList list = methodCallExpression.getArgumentList();
+ if (list.getExpressions().length != 0) {
+ return;
+ }
+ parent = methodCallExpression.getParent();
+ }
if (!(parent instanceof PsiExpressionList)) {
return;
}