Only cache by-type lookups if configuration has been marked as frozen

Issue: SPR-9448
This commit is contained in:
Juergen Hoeller 2012-10-12 16:25:11 +02:00 committed by unknown
parent 3c59725b94
commit 538ce4747d
1 changed files with 3 additions and 3 deletions

View File

@ -304,8 +304,8 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto
}
public String[] getBeanNamesForType(Class<?> type, boolean includeNonSingletons, boolean allowEagerInit) {
if (type == null || !allowEagerInit) {
return this.doGetBeanNamesForType(type, includeNonSingletons, allowEagerInit);
if (!isConfigurationFrozen() || type == null || !allowEagerInit) {
return doGetBeanNamesForType(type, includeNonSingletons, allowEagerInit);
}
Map<Class<?>, String[]> cache = includeNonSingletons ?
this.nonSingletonBeanNamesByType : this.singletonBeanNamesByType;
@ -313,7 +313,7 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto
if (resolvedBeanNames != null) {
return resolvedBeanNames;
}
resolvedBeanNames = this.doGetBeanNamesForType(type, includeNonSingletons, allowEagerInit);
resolvedBeanNames = doGetBeanNamesForType(type, includeNonSingletons, allowEagerInit);
cache.put(type, resolvedBeanNames);
return resolvedBeanNames;
}