diff --git a/spring-cloud-context/src/main/java/org/springframework/cloud/context/refresh/ContextRefresher.java b/spring-cloud-context/src/main/java/org/springframework/cloud/context/refresh/ContextRefresher.java index c57a25b8..e4979db2 100644 --- a/spring-cloud-context/src/main/java/org/springframework/cloud/context/refresh/ContextRefresher.java +++ b/spring-cloud-context/src/main/java/org/springframework/cloud/context/refresh/ContextRefresher.java @@ -102,7 +102,20 @@ public class ContextRefresher { } finally { ConfigurableApplicationContext closeable = capture; - closeable.close(); + while (closeable != null) { + try { + closeable.close(); + } + catch (Exception e) { + // Ignore; + } + if (closeable.getParent() instanceof ConfigurableApplicationContext) { + closeable = (ConfigurableApplicationContext) closeable.getParent(); + } + else { + break; + } + } } }