From a729f71cbaad4e348a31eb7d5047310ac2e07b0b Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Wed, 8 Jun 2022 19:10:00 -0700 Subject: [PATCH] Polish LogbackRuntimeHintsRegistrar --- .../logback/LogbackRuntimeHintsRegistrar.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/logging/logback/LogbackRuntimeHintsRegistrar.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/logging/logback/LogbackRuntimeHintsRegistrar.java index f36722c1361..8b2df4b20e5 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/logging/logback/LogbackRuntimeHintsRegistrar.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/logging/logback/LogbackRuntimeHintsRegistrar.java @@ -62,22 +62,25 @@ import org.springframework.util.ClassUtils; */ class LogbackRuntimeHintsRegistrar implements RuntimeHintsRegistrar { + private static final Consumer DEFAULT_HINT = (hint) -> { + }; + @Override public void registerHints(RuntimeHints hints, ClassLoader classLoader) { if (!ClassUtils.isPresent("ch.qos.logback.classic.LoggerContext", classLoader)) { return; } ReflectionHints reflection = hints.reflection(); - registerHintsForLogbackLoggingSystemTypeChecks(reflection); + registerHintsForLogbackLoggingSystemTypeChecks(reflection, classLoader); registerHintsForBuiltInLogbackConverters(reflection); registerHintsForSpringBootConverters(reflection); } - private void registerHintsForLogbackLoggingSystemTypeChecks(ReflectionHints reflection) { - Consumer defaultHint = (hint) -> { - }; - reflection.registerType(LoggerContext.class, defaultHint); - reflection.registerType(SLF4JBridgeHandler.class, defaultHint); + private void registerHintsForLogbackLoggingSystemTypeChecks(ReflectionHints reflection, ClassLoader classLoader) { + reflection.registerType(LoggerContext.class, DEFAULT_HINT); + if (ClassUtils.isPresent("org.slf4j.bridge.SLF4JBridgeHandler", classLoader)) { + reflection.registerType(SLF4JBridgeHandler.class, DEFAULT_HINT); + } } private void registerHintsForBuiltInLogbackConverters(ReflectionHints reflection) {