From dd822c1bc7b7b29066bd2e453dd4b08d94998c62 Mon Sep 17 00:00:00 2001 From: Mikhail Pyltsin Date: Mon, 2 Sep 2024 18:42:40 +0200 Subject: [PATCH] IJ-CR-142710 [java-inspections] IDEA-357725 LoggerInitializedWithForeignClassInspection should skip when the logger is not the final field - fix texts GitOrigin-RevId: 85d86f362ce860118d2a047321bf4916e01757da --- .../messages/InspectionGadgetsBundle.properties | 2 +- .../LoggerInitializedWithForeignClassInspection.java | 10 +++++----- .../LoggerInitializedWithForeignClass.html | 2 +- ...lFieldAssignment.java => IgnoreNotFinalField.java} | 0 ...ggerInitializedWithForeignClassInspectionTest.java | 11 +++-------- 5 files changed, 10 insertions(+), 15 deletions(-) rename java/java-tests/testData/ig/com/siyeh/igtest/logging/logger_initialized_with_foreign_class/{WarnOnlyFinalFieldAssignment.java => IgnoreNotFinalField.java} (100%) diff --git a/java/java-analysis-impl/resources/messages/InspectionGadgetsBundle.properties b/java/java-analysis-impl/resources/messages/InspectionGadgetsBundle.properties index 44e36d32d5c8..e90bb0b4fd10 100644 --- a/java/java-analysis-impl/resources/messages/InspectionGadgetsBundle.properties +++ b/java/java-analysis-impl/resources/messages/InspectionGadgetsBundle.properties @@ -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=#ref() logging calls not guarded by log condition #loc diff --git a/java/java-impl/src/com/siyeh/ig/logging/LoggerInitializedWithForeignClassInspection.java b/java/java-impl/src/com/siyeh/ig/logging/LoggerInitializedWithForeignClassInspection.java index c77ffa6a5b80..c91e9929a854 100644 --- a/java/java-impl/src/com/siyeh/ig/logging/LoggerInitializedWithForeignClassInspection.java +++ b/java/java-impl/src/com/siyeh/ig/logging/LoggerInitializedWithForeignClassInspection.java @@ -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; diff --git a/java/java-impl/src/inspectionDescriptions/LoggerInitializedWithForeignClass.html b/java/java-impl/src/inspectionDescriptions/LoggerInitializedWithForeignClass.html index 8caccd06e0a8..9dbe094f0294 100644 --- a/java/java-impl/src/inspectionDescriptions/LoggerInitializedWithForeignClass.html +++ b/java/java-impl/src/inspectionDescriptions/LoggerInitializedWithForeignClass.html @@ -29,7 +29,7 @@ may result in logging events under an unexpected category and cause filters to b
  • Use the Ignore loggers initialized with a superclass option to ignore loggers that are initialized with a superclass of the class containing the logger.
  • Use the Ignore loggers in non-public classes to only warn on loggers in public classes.
  • -
  • Use the Warn only about final field declarations to only warn about final field declarations, other cases will be ignored
  • +
  • Use the Ignore loggers not initialized in a final field to only report loggers initialized in a final field, other cases will be ignored.
  • \ No newline at end of file diff --git a/java/java-tests/testData/ig/com/siyeh/igtest/logging/logger_initialized_with_foreign_class/WarnOnlyFinalFieldAssignment.java b/java/java-tests/testData/ig/com/siyeh/igtest/logging/logger_initialized_with_foreign_class/IgnoreNotFinalField.java similarity index 100% rename from java/java-tests/testData/ig/com/siyeh/igtest/logging/logger_initialized_with_foreign_class/WarnOnlyFinalFieldAssignment.java rename to java/java-tests/testData/ig/com/siyeh/igtest/logging/logger_initialized_with_foreign_class/IgnoreNotFinalField.java diff --git a/java/java-tests/testSrc/com/siyeh/ig/logging/LoggerInitializedWithForeignClassInspectionTest.java b/java/java-tests/testSrc/com/siyeh/ig/logging/LoggerInitializedWithForeignClassInspectionTest.java index 92033b9c46bd..8ba0140068ae 100644 --- a/java/java-tests/testSrc/com/siyeh/ig/logging/LoggerInitializedWithForeignClassInspectionTest.java +++ b/java/java-tests/testSrc/com/siyeh/ig/logging/LoggerInitializedWithForeignClassInspectionTest.java @@ -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; }