From f1991d8d80d72d3150256e53e0f6ffd8bcd379e2 Mon Sep 17 00:00:00 2001 From: Stephane Nicoll Date: Tue, 16 Nov 2021 16:24:18 +0100 Subject: [PATCH] Avoid bean override with CachingMetadataReaderFactoryPostProcessor Closes gh-28705 --- ...haredMetadataReaderFactoryContextInitializer.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/SharedMetadataReaderFactoryContextInitializer.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/SharedMetadataReaderFactoryContextInitializer.java index 1d4dec1b11..f382164764 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/SharedMetadataReaderFactoryContextInitializer.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/SharedMetadataReaderFactoryContextInitializer.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2020 the original author or authors. + * Copyright 2012-2021 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. @@ -99,10 +99,12 @@ class SharedMetadataReaderFactoryContextInitializer } private void register(BeanDefinitionRegistry registry) { - BeanDefinition definition = BeanDefinitionBuilder - .genericBeanDefinition(SharedMetadataReaderFactoryBean.class, SharedMetadataReaderFactoryBean::new) - .getBeanDefinition(); - registry.registerBeanDefinition(BEAN_NAME, definition); + if (!registry.containsBeanDefinition(BEAN_NAME)) { + BeanDefinition definition = BeanDefinitionBuilder + .rootBeanDefinition(SharedMetadataReaderFactoryBean.class, SharedMetadataReaderFactoryBean::new) + .getBeanDefinition(); + registry.registerBeanDefinition(BEAN_NAME, definition); + } } private void configureConfigurationClassPostProcessor(BeanDefinitionRegistry registry) {