From fcad7c4fded2be96651678356f276494fc9eef72 Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Mon, 8 Dec 2014 09:25:12 -0800 Subject: [PATCH] Guard for null BeanFactory in @ConditionalOnBean See gh-2080 --- .../boot/autoconfigure/condition/OnBeanCondition.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/condition/OnBeanCondition.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/condition/OnBeanCondition.java index b4d30d164e7..e0a1f439f38 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/condition/OnBeanCondition.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/condition/OnBeanCondition.java @@ -111,26 +111,24 @@ class OnBeanCondition extends SpringBootCondition implements ConfigurationCondit "Unable to use SearchStrategy.PARENTS"); beanFactory = (ConfigurableListableBeanFactory) parent; } - + if (beanFactory == null) { + return Collections.emptyList(); + } List beanNames = new ArrayList(); boolean considerHierarchy = beans.getStrategy() == SearchStrategy.ALL; - for (String type : beans.getTypes()) { beanNames.addAll(getBeanNamesForType(beanFactory, type, context.getClassLoader(), considerHierarchy)); } - for (String annotation : beans.getAnnotations()) { beanNames.addAll(Arrays.asList(getBeanNamesForAnnotation(beanFactory, annotation, context.getClassLoader(), considerHierarchy))); } - for (String beanName : beans.getNames()) { if (containsBean(beanFactory, beanName, considerHierarchy)) { beanNames.add(beanName); } } - return beanNames; }