diff --git a/spring-boot/src/main/java/org/springframework/boot/context/embedded/AnnotationConfigEmbeddedWebApplicationContext.java b/spring-boot/src/main/java/org/springframework/boot/context/embedded/AnnotationConfigEmbeddedWebApplicationContext.java index 0135151220..29b5dd0810 100644 --- a/spring-boot/src/main/java/org/springframework/boot/context/embedded/AnnotationConfigEmbeddedWebApplicationContext.java +++ b/spring-boot/src/main/java/org/springframework/boot/context/embedded/AnnotationConfigEmbeddedWebApplicationContext.java @@ -16,7 +16,6 @@ package org.springframework.boot.context.embedded; -import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; import org.springframework.beans.factory.support.BeanNameGenerator; import org.springframework.context.annotation.AnnotatedBeanDefinitionReader; @@ -188,9 +187,4 @@ public class AnnotationConfigEmbeddedWebApplicationContext extends } } - @Override - public final void refresh() throws BeansException, IllegalStateException { - super.refresh(); - } - } diff --git a/spring-boot/src/main/java/org/springframework/boot/context/embedded/EmbeddedWebApplicationContext.java b/spring-boot/src/main/java/org/springframework/boot/context/embedded/EmbeddedWebApplicationContext.java index 667aa843be..5e041864c8 100644 --- a/spring-boot/src/main/java/org/springframework/boot/context/embedded/EmbeddedWebApplicationContext.java +++ b/spring-boot/src/main/java/org/springframework/boot/context/embedded/EmbeddedWebApplicationContext.java @@ -35,6 +35,7 @@ import javax.servlet.ServletException; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextException; @@ -114,6 +115,17 @@ public class EmbeddedWebApplicationContext extends GenericWebApplicationContext beanFactory.ignoreDependencyInterface(ServletContextAware.class); } + @Override + public final void refresh() throws BeansException, IllegalStateException { + try { + super.refresh(); + } + catch (RuntimeException e) { + stopAndReleaseEmbeddedServletContainer(); + throw e; + } + } + @Override protected void onRefresh() { super.onRefresh(); diff --git a/spring-boot/src/main/java/org/springframework/boot/context/embedded/XmlEmbeddedWebApplicationContext.java b/spring-boot/src/main/java/org/springframework/boot/context/embedded/XmlEmbeddedWebApplicationContext.java index 2a8b7863b0..3f0b309f7b 100644 --- a/spring-boot/src/main/java/org/springframework/boot/context/embedded/XmlEmbeddedWebApplicationContext.java +++ b/spring-boot/src/main/java/org/springframework/boot/context/embedded/XmlEmbeddedWebApplicationContext.java @@ -16,7 +16,6 @@ package org.springframework.boot.context.embedded; -import org.springframework.beans.BeansException; import org.springframework.beans.factory.xml.XmlBeanDefinitionReader; import org.springframework.core.env.ConfigurableEnvironment; import org.springframework.core.io.ClassPathResource; @@ -132,8 +131,4 @@ public class XmlEmbeddedWebApplicationContext extends EmbeddedWebApplicationCont this.reader.loadBeanDefinitions(resources); } - @Override - public final void refresh() throws BeansException, IllegalStateException { - super.refresh(); - } }