diff --git a/spring-context/src/main/java/org/springframework/context/support/AbstractApplicationContext.java b/spring-context/src/main/java/org/springframework/context/support/AbstractApplicationContext.java index 81a4de473f..b44e86fe8f 100644 --- a/spring-context/src/main/java/org/springframework/context/support/AbstractApplicationContext.java +++ b/spring-context/src/main/java/org/springframework/context/support/AbstractApplicationContext.java @@ -891,7 +891,9 @@ public abstract class AbstractApplicationContext extends DefaultResourceLoader this.shutdownHook = new Thread() { @Override public void run() { - doClose(); + synchronized (startupShutdownMonitor) { + doClose(); + } } }; Runtime.getRuntime().addShutdownHook(this.shutdownHook);