Skip to content

Commit bdac416

Browse files
sdeleuzephilwebb
authored andcommitted
Refine BackgroundPreinitializer Jackson initialization
AllEncompassingFormHttpMessageConverter already initializes Jackson ObjectMapper. This commit updates BackgroundPreinitializer in order to not run JacksonInitializer when MessageConverterInitializer already takes care of initializing ObjectMapper. See gh-33220
1 parent a650361 commit bdac416

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/BackgroundPreinitializer.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import org.springframework.format.support.DefaultFormattingConversionService;
3535
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
3636
import org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter;
37+
import org.springframework.util.ClassUtils;
3738

3839
/**
3940
* {@link ApplicationListener} to trigger early initialization in a background thread of
@@ -100,8 +101,14 @@ private void performPreinitialization() {
100101
public void run() {
101102
runSafely(new ConversionServiceInitializer());
102103
runSafely(new ValidationInitializer());
103-
runSafely(new MessageConverterInitializer());
104-
runSafely(new JacksonInitializer());
104+
if (ClassUtils.isPresent(
105+
"org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter",
106+
BackgroundPreinitializer.class.getClassLoader())) {
107+
runSafely(new MessageConverterInitializer());
108+
}
109+
else {
110+
runSafely(new JacksonInitializer());
111+
}
105112
runSafely(new CharsetInitializer());
106113
preinitializationComplete.countDown();
107114
}

0 commit comments

Comments
 (0)