From b7710fcd4d26dfbe4ad49d186537542b50f70da3 Mon Sep 17 00:00:00 2001 From: Artem Bilan Date: Wed, 17 Aug 2022 12:54:51 -0400 Subject: [PATCH] GH-3875: Initialize ClassUtils as early as possible Fixes https://github.com/spring-projects/spring-integration/issues/3875 The class `static` variables and initialization block are performed on first class access. * Add "fake" `ClassUtils.resolvePrimitiveType(Integer.class)` call to the `IntegrationRegistrar` to trigger `ClassUtils` initialization with the current Spring `ClassLoader` **Cherry-pick to `5.5.x`** --- .../integration/config/IntegrationRegistrar.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/spring-integration-core/src/main/java/org/springframework/integration/config/IntegrationRegistrar.java b/spring-integration-core/src/main/java/org/springframework/integration/config/IntegrationRegistrar.java index 4006b5c7dc..d790b6773d 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/config/IntegrationRegistrar.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/config/IntegrationRegistrar.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2021 the original author or authors. + * Copyright 2014-2022 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -56,6 +56,9 @@ public class IntegrationRegistrar implements ImportBeanDefinitionRegistrar { public void registerBeanDefinitions(@Nullable AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) { + // Ensure that ClassUtils is initialized with a proper Spring application context ClassLoader. + org.springframework.integration.util.ClassUtils.resolvePrimitiveType(Integer.class); + registerDefaultConfiguringBeanFactoryPostProcessor(registry); registerIntegrationConfigurationBeanFactoryPostProcessor(registry); if (importingClassMetadata != null) {