IJ-CR-142710 [java-inspections] IDEA-357725 LoggerInitializedWithForeignClassInspection should skip when the logger is not the final field

- fix texts

GitOrigin-RevId: 85d86f362ce860118d2a047321bf4916e01757da
This commit is contained in:
Mikhail Pyltsin
2024-09-02 18:36:41 +00:00
committed by intellij-monorepo-bot
parent 0419956bda
commit dd822c1bc7
5 changed files with 10 additions and 15 deletions
@@ -1642,7 +1642,7 @@ logger.factory.method.name=Logger Factory Method Name
logger.factory.class.name=Logger Factory Class Name
logger.initialized.with.foreign.class.ignore.super.class.option=Ignore loggers initialized with a superclass
logger.initialized.with.foreign.class.ignore.non.public.classes.option=Ignore loggers in non-public classes
logger.initialized.with.foreign.class.warn.only.final.field.assignment.option=Warn only about final field declarations
logger.initialized.with.foreign.class.ignore.not.final.field=Ignore loggers not initialized in a final field
make.static.final.quickfix=Make ''{0}'' static final
log.statement.guarded.by.log.condition.display.name=Logging call not guarded by log condition
log.statement.guarded.by.log.condition.problem.descriptor=<code>#ref()</code> logging calls not guarded by log condition #loc
@@ -70,7 +70,7 @@ public final class LoggerInitializedWithForeignClassInspection extends BaseInspe
public boolean ignoreSuperClass = false;
public boolean ignoreNonPublicClasses = false;
public boolean warnOnlyFinalFieldAssignment = true;
public boolean ignoreNotFinalField = true;
{
parseString(loggerClassName, loggerFactoryClassNames);
parseString(loggerFactoryMethodName, loggerFactoryMethodNames);
@@ -87,8 +87,8 @@ public final class LoggerInitializedWithForeignClassInspection extends BaseInspe
checkbox("ignoreSuperClass", InspectionGadgetsBundle.message("logger.initialized.with.foreign.class.ignore.super.class.option")),
checkbox("ignoreNonPublicClasses",
InspectionGadgetsBundle.message("logger.initialized.with.foreign.class.ignore.non.public.classes.option")),
checkbox("warnOnlyFinalFieldAssignment",
InspectionGadgetsBundle.message("logger.initialized.with.foreign.class.warn.only.final.field.assignment.option"))
checkbox("ignoreNotFinalField",
InspectionGadgetsBundle.message("logger.initialized.with.foreign.class.ignore.not.final.field"))
);
}
@@ -138,7 +138,7 @@ public final class LoggerInitializedWithForeignClassInspection extends BaseInspe
if ("loggerFactoryMethodNames".equals(factoryName) && DEFAULT_FACTORY_METHOD_NAMES.equals(beanValue)) return false;
if ("ignoreSuperClass".equals(factoryName) && !ignoreSuperClass) return false;
if ("ignoreNonPublicClasses".equals(factoryName) && !ignoreNonPublicClasses) return false;
if ("warnOnlyFinalFieldAssignment".equals(factoryName) && warnOnlyFinalFieldAssignment) return false;
if ("ignoreNotFinalField".equals(factoryName) && ignoreNotFinalField) return false;
return true;
}
});
@@ -247,7 +247,7 @@ public final class LoggerInitializedWithForeignClassInspection extends BaseInspe
return;
}
if (warnOnlyFinalFieldAssignment) {
if (ignoreNotFinalField) {
PsiField field = PsiTreeUtil.getParentOfType(methodCallExpression, PsiField.class);
if (field == null) return;
if (!field.hasModifierProperty(PsiModifier.FINAL)) return;
@@ -29,7 +29,7 @@ may result in logging events under an unexpected category and cause filters to b
<li>Use the <b>Ignore loggers initialized with a superclass</b> option to ignore loggers that are initialized with a superclass of
the class containing the logger.</li>
<li>Use the <b>Ignore loggers in non-public classes</b> to only warn on loggers in <code>public</code> classes.</li>
<li>Use the <b>Warn only about final field declarations</b> to only warn about final field declarations, other cases will be ignored</li>
<li>Use the <b>Ignore loggers not initialized in a final field</b> to only report loggers initialized in a final field, other cases will be ignored.</li>
</ul>
</body>
</html>
@@ -40,13 +40,13 @@ public class LoggerInitializedWithForeignClassInspectionTest extends LightJavaIn
public void testIgnoreNonPublicClasses() {
final LoggerInitializedWithForeignClassInspection inspection = new LoggerInitializedWithForeignClassInspection();
inspection.ignoreNonPublicClasses = true;
inspection.warnOnlyFinalFieldAssignment = false;
inspection.ignoreNotFinalField = false;
myFixture.enableInspections(inspection);
changeToWarning();
doTest();
}
public void testWarnOnlyFinalFieldAssignment() {
public void testIgnoreNotFinalField() {
changeToWarning();
doTest();
}
@@ -57,12 +57,7 @@ public class LoggerInitializedWithForeignClassInspectionTest extends LightJavaIn
final LoggerInitializedWithForeignClassInspection inspection = new LoggerInitializedWithForeignClassInspection();
inspection.ignoreSuperClass = true;
String name = getTestName(false);
if (name.endsWith("WarnOnlyFinalFieldAssignment")) {
inspection.warnOnlyFinalFieldAssignment = true;
}
else {
inspection.warnOnlyFinalFieldAssignment = false;
}
inspection.ignoreNotFinalField = name.endsWith("IgnoreNotFinalField");
return inspection;
}