Consistent thread-safe iteration in DefaultSingletonBeanRegistry

Issue: SPR-16620
This commit is contained in:
Juergen Hoeller
2018-03-24 16:30:51 +01:00
parent 9128226da4
commit 8d5587fe4f
2 changed files with 32 additions and 24 deletions

View File

@@ -167,7 +167,7 @@ public class DefaultLifecycleProcessor implements LifecycleProcessor, BeanFactor
*/
private void doStart(Map<String, ? extends Lifecycle> lifecycleBeans, String beanName, boolean autoStartupOnly) {
Lifecycle bean = lifecycleBeans.remove(beanName);
if (bean != null && !this.equals(bean)) {
if (bean != null && bean != this) {
String[] dependenciesForBean = getBeanFactory().getDependenciesForBean(beanName);
for (String dependency : dependenciesForBean) {
doStart(lifecycleBeans, dependency, autoStartupOnly);