From f4ba006d289f16242ece35fc6aa4ce99bcf20022 Mon Sep 17 00:00:00 2001 From: jameskleeh Date: Fri, 1 May 2020 16:09:51 -0400 Subject: [PATCH] Don't syncrhonize the entire loading operation. Fixes #2867 --- .../java/io/micronaut/context/DefaultBeanContext.java | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/inject/src/main/java/io/micronaut/context/DefaultBeanContext.java b/inject/src/main/java/io/micronaut/context/DefaultBeanContext.java index 214acdfb898..86a8356c5f9 100644 --- a/inject/src/main/java/io/micronaut/context/DefaultBeanContext.java +++ b/inject/src/main/java/io/micronaut/context/DefaultBeanContext.java @@ -1810,9 +1810,7 @@ protected void processParallelBeans() { parallelBeans.forEach(beanDefinitionReference -> { try { if (isRunning()) { - synchronized (singletonObjects) { - loadContextScopeBean(beanDefinitionReference, parallelDefinitions::add); - } + loadContextScopeBean(beanDefinitionReference, parallelDefinitions::add); } } catch (Throwable e) { LOG.error("Parallel Bean definition [" + beanDefinitionReference.getName() + "] could not be loaded: " + e.getMessage(), e); @@ -1829,9 +1827,7 @@ protected void processParallelBeans() { parallelDefinitions.forEach(beanDefinition -> ForkJoinPool.commonPool().execute(() -> { try { if (isRunning()) { - synchronized (singletonObjects) { - loadContextScopeBean(beanDefinition); - } + loadContextScopeBean(beanDefinition); } } catch (Throwable e) { LOG.error("Parallel Bean definition [" + beanDefinition.getName() + "] could not be loaded: " + e.getMessage(), e); @@ -1991,7 +1987,7 @@ private void loadContextScopeBean(BeanDefinition beanDefinition) { } else { try (BeanResolutionContext resolutionContext = newResolutionContext(beanDefinition, null)) { - createAndRegisterSingletonInternal(resolutionContext, beanDefinition, beanDefinition.getBeanType(), null); + createAndRegisterSingleton(resolutionContext, beanDefinition, beanDefinition.getBeanType(), null); } } }