diff --git a/spring-cloud-context/src/main/java/org/springframework/cloud/context/scope/GenericScope.java b/spring-cloud-context/src/main/java/org/springframework/cloud/context/scope/GenericScope.java index 20c0a52d..57c3b87f 100644 --- a/spring-cloud-context/src/main/java/org/springframework/cloud/context/scope/GenericScope.java +++ b/spring-cloud-context/src/main/java/org/springframework/cloud/context/scope/GenericScope.java @@ -157,7 +157,14 @@ public class GenericScope implements Scope, BeanFactoryPostProcessor, protected boolean destroy(String name) { BeanLifecycleWrapper wrapper = this.cache.remove(name); if (wrapper != null) { - wrapper.destroy(); + Lock lock = locks.get(wrapper.getName()).writeLock(); + lock.lock(); + try { + wrapper.destroy(); + } + finally { + lock.unlock(); + } this.errors.remove(name); return true; }