Skip to content

Commit e5227ee

Browse files
committed
Defensively access existing beanDefinitionMap entries
See gh-22263 (cherry picked from commit f1345aa)
1 parent eb4f91a commit e5227ee

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

spring-beans/src/main/java/org/springframework/beans/factory/support/DefaultListableBeanFactory.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -543,8 +543,8 @@ public <T> Map<String, T> getBeansOfType(
543543
public String[] getBeanNamesForAnnotation(Class<? extends Annotation> annotationType) {
544544
List<String> result = new ArrayList<>();
545545
for (String beanName : this.beanDefinitionNames) {
546-
BeanDefinition beanDefinition = this.beanDefinitionMap.get(beanName);
547-
if (!beanDefinition.isAbstract() && findAnnotationOnBean(beanName, annotationType) != null) {
546+
BeanDefinition bd = this.beanDefinitionMap.get(beanName);
547+
if (bd != null && !bd.isAbstract() && findAnnotationOnBean(beanName, annotationType) != null) {
548548
result.add(beanName);
549549
}
550550
}
@@ -911,6 +911,7 @@ protected void resetBeanDefinition(String beanName) {
911911
for (String bdName : this.beanDefinitionNames) {
912912
if (!beanName.equals(bdName)) {
913913
BeanDefinition bd = this.beanDefinitionMap.get(bdName);
914+
// Ensure bd is non-null due to potential concurrent modification of beanDefinitionMap.
914915
if (bd != null && beanName.equals(bd.getParentName())) {
915916
resetBeanDefinition(bdName);
916917
}

0 commit comments

Comments
 (0)