diff --git a/jvm/jvm-analysis-java-tests/testSrc/com/intellij/logging/highlighting/JavaLoggingPlaceholderAnnotatorTest.kt b/jvm/jvm-analysis-java-tests/testSrc/com/intellij/logging/highlighting/JavaLoggingPlaceholderAnnotatorTest.kt
index 55b50fddc560..18a0497373f9 100644
--- a/jvm/jvm-analysis-java-tests/testSrc/com/intellij/logging/highlighting/JavaLoggingPlaceholderAnnotatorTest.kt
+++ b/jvm/jvm-analysis-java-tests/testSrc/com/intellij/logging/highlighting/JavaLoggingPlaceholderAnnotatorTest.kt
@@ -224,4 +224,88 @@ class JavaLoggingPlaceholderAnnotatorTest : LoggingPlaceholderAnnotatorTestBase(
}
}
""".trimIndent())
+
+ fun `test lazy init`() = doTest("""
+ import org.apache.logging.log4j.LogBuilder;
+ import org.apache.logging.log4j.LogManager;
+ import org.apache.logging.log4j.Logger;
+
+ class LazyInitializer {
+
+ static class StaticInitializer {
+ private static final Logger log;
+
+ static {
+ log = LogManager.getLogger();
+ }
+
+ public StaticInitializer() {
+ log.info("{}", 1);
+ }
+ }
+
+ static class StaticInitializerBuilder {
+ private static final LogBuilder log;
+
+ static {
+ log = LogManager.getLogger().atDebug();
+ }
+
+ public StaticInitializerBuilder() {
+ log.log("{}", "arg");
+ }
+ }
+
+ static class StaticInitializerBuilder2 {
+ private static final LogBuilder log;
+
+ static {
+ if (1 == 1) {
+ log = LogManager.getLogger().atDebug();
+ } else {
+ log = LogManager.getFormatterLogger().atDebug();
+ }
+ }
+
+ public StaticInitializerBuilder2() {
+ log.log("{}", 1);
+ }
+ }
+
+ static class ConstructorInitializer {
+ private final Logger log;
+
+
+ public ConstructorInitializer() {
+ log = LogManager.getLogger();
+ }
+
+ public ConstructorInitializer(int i) {
+ log = LogManager.getLogger();
+ }
+
+ public void test() {
+ log.info("{} {}", 2, 1);
+ }
+ }
+
+ static class ConstructorInitializer2 {
+ private final Logger log;
+
+
+ public ConstructorInitializer2() {
+ log = LogManager.getFormatterLogger();
+ }
+
+ public ConstructorInitializer2(int i) {
+ log = LogManager.getLogger();
+ }
+
+ public void test() {
+ log.info("{}", 1);
+ }
+ }
+ }
+ """.trimIndent())
+
}
\ No newline at end of file
diff --git a/jvm/jvm-analysis-kotlin-tests-shared/testSrc/com/intellij/logging/highlighting/KotlinLoggingPlaceholderAnnotatorTest.kt b/jvm/jvm-analysis-kotlin-tests-shared/testSrc/com/intellij/logging/highlighting/KotlinLoggingPlaceholderAnnotatorTest.kt
index fcaca85b4eff..cbffa64f0ce2 100644
--- a/jvm/jvm-analysis-kotlin-tests-shared/testSrc/com/intellij/logging/highlighting/KotlinLoggingPlaceholderAnnotatorTest.kt
+++ b/jvm/jvm-analysis-kotlin-tests-shared/testSrc/com/intellij/logging/highlighting/KotlinLoggingPlaceholderAnnotatorTest.kt
@@ -223,4 +223,63 @@ abstract class KotlinLoggingPlaceholderAnnotatorTest : LoggingPlaceholderAnnotat
}
""".trimIndent())
}
+
+ fun `test lazy init`() = doTest("""
+ import org.apache.logging.log4j.LogBuilder
+ import org.apache.logging.log4j.LogManager
+ import org.apache.logging.log4j.Logger
+
+ class LazyInitializer {
+
+ internal class StaticInitializerBuilder2 {
+ init {
+ log.log("{}", 1)
+ }
+
+ companion object {
+ private val log: LogBuilder
+
+ init {
+ if (1 == 1) {
+ log = LogManager.getLogger().atDebug()
+ } else {
+ log = LogManager.getFormatterLogger().atDebug()
+ }
+ }
+ }
+ }
+
+ internal class ConstructorInitializer {
+ private val log: Logger
+
+ constructor() {
+ log = LogManager.getLogger()
+ }
+
+ constructor(i) {
+ log = LogManager.getLogger()
+ }
+
+ fun test() {
+ log.info("{}", 1)
+ }
+ }
+
+ internal class ConstructorInitializer2 {
+ private val log: Logger
+
+ constructor() {
+ log = LogManager.getFormatterLogger()
+ }
+
+ constructor(i: Int) {
+ log = LogManager.getLogger()
+ }
+
+ fun test() {
+ log.info("{}", 1)
+ }
+ }
+ }
+ """.trimIndent())
}
\ No newline at end of file