diff --git a/spring-boot/src/main/java/org/springframework/boot/context/embedded/jetty/JettyEmbeddedServletContainer.java b/spring-boot/src/main/java/org/springframework/boot/context/embedded/jetty/JettyEmbeddedServletContainer.java index 4dfb0a7acc..a4c0039d48 100644 --- a/spring-boot/src/main/java/org/springframework/boot/context/embedded/jetty/JettyEmbeddedServletContainer.java +++ b/spring-boot/src/main/java/org/springframework/boot/context/embedded/jetty/JettyEmbeddedServletContainer.java @@ -75,6 +75,12 @@ public class JettyEmbeddedServletContainer implements EmbeddedServletContainer { } } catch (Exception ex) { + try { + // Ensure process isn't left running + this.server.stop(); + } + catch (Exception e) { + } throw new EmbeddedServletContainerException( "Unable to start embedded Jetty servlet container", ex); } diff --git a/spring-boot/src/main/java/org/springframework/boot/context/embedded/tomcat/TomcatEmbeddedServletContainer.java b/spring-boot/src/main/java/org/springframework/boot/context/embedded/tomcat/TomcatEmbeddedServletContainer.java index 59e96286f2..4a9a93ebf5 100644 --- a/spring-boot/src/main/java/org/springframework/boot/context/embedded/tomcat/TomcatEmbeddedServletContainer.java +++ b/spring-boot/src/main/java/org/springframework/boot/context/embedded/tomcat/TomcatEmbeddedServletContainer.java @@ -95,6 +95,7 @@ public class TomcatEmbeddedServletContainer implements EmbeddedServletContainer this.tomcat.stop(); throw new IllegalStateException("Tomcat connector in failed state"); } + } catch (Exception ex) { throw new EmbeddedServletContainerException( @@ -151,6 +152,15 @@ public class TomcatEmbeddedServletContainer implements EmbeddedServletContainer if (connector != null && this.autoStart) { startConnector(connector); } + // Ensure process isn't left running if it actually failed to start + if (LifecycleState.FAILED.equals(this.tomcat.getConnector().getState())) { + try { + this.tomcat.stop(); + } + catch (LifecycleException e) { + } + throw new IllegalStateException("Tomcat connector in failed state"); + } } private void addPreviouslyRemovedConnectors() { @@ -213,11 +223,11 @@ public class TomcatEmbeddedServletContainer implements EmbeddedServletContainer try { try { this.tomcat.stop(); + this.tomcat.destroy(); } catch (LifecycleException ex) { // swallow and continue } - this.tomcat.destroy(); } catch (Exception ex) { throw new EmbeddedServletContainerException("Unable to stop embedded Tomcat", diff --git a/spring-boot/src/main/java/org/springframework/boot/logging/LoggingApplicationListener.java b/spring-boot/src/main/java/org/springframework/boot/logging/LoggingApplicationListener.java index 8d58806fc1..8f6ad83167 100644 --- a/spring-boot/src/main/java/org/springframework/boot/logging/LoggingApplicationListener.java +++ b/spring-boot/src/main/java/org/springframework/boot/logging/LoggingApplicationListener.java @@ -88,6 +88,7 @@ public class LoggingApplicationListener implements SmartApplicationListener { LOG_LEVEL_LOGGERS.add(LogLevel.DEBUG, "org.springframework.boot"); LOG_LEVEL_LOGGERS.add(LogLevel.TRACE, "org.springframework"); LOG_LEVEL_LOGGERS.add(LogLevel.TRACE, "org.apache.tomcat"); + LOG_LEVEL_LOGGERS.add(LogLevel.TRACE, "org.apache.catalina"); LOG_LEVEL_LOGGERS.add(LogLevel.TRACE, "org.eclipse.jetty"); LOG_LEVEL_LOGGERS.add(LogLevel.TRACE, "org.hibernate.tool.hbm2ddl"); } diff --git a/spring-boot/src/main/resources/org/springframework/boot/logging/java/basic-logging.properties b/spring-boot/src/main/resources/org/springframework/boot/logging/java/basic-logging.properties index ae39617ab9..73c81a46ed 100644 --- a/spring-boot/src/main/resources/org/springframework/boot/logging/java/basic-logging.properties +++ b/spring-boot/src/main/resources/org/springframework/boot/logging/java/basic-logging.properties @@ -9,3 +9,5 @@ org.apache.coyote.http11.Http11NioProtocol.level = WARNING org.crsh.plugin.level = WARNING org.apache.tomcat.util.net.NioSelectorPool.level = WARNING org.apache.catalina.startup.DigesterFactory.level = SEVERE +org.apache.catalina.util.LifecycleBase.level = SEVERE +org.eclipse.jetty.util.component.AbstractLifeCycle.level = SEVERE diff --git a/spring-boot/src/main/resources/org/springframework/boot/logging/java/logging.properties b/spring-boot/src/main/resources/org/springframework/boot/logging/java/logging.properties index 2c83dcfb5b..a37a6fa096 100644 --- a/spring-boot/src/main/resources/org/springframework/boot/logging/java/logging.properties +++ b/spring-boot/src/main/resources/org/springframework/boot/logging/java/logging.properties @@ -16,3 +16,5 @@ org.apache.coyote.http11.Http11NioProtocol.level = WARNING org.crsh.plugin.level = WARNING org.apache.tomcat.util.net.NioSelectorPool.level = WARNING org.apache.catalina.startup.DigesterFactory.level = SEVERE +org.apache.catalina.util.LifecycleBase.level = SEVERE +org.eclipse.jetty.util.component.AbstractLifeCycle.level = SEVERE diff --git a/spring-boot/src/main/resources/org/springframework/boot/logging/log4j/basic-log4j.properties b/spring-boot/src/main/resources/org/springframework/boot/logging/log4j/basic-log4j.properties index 253900fe6b..28b637638f 100644 --- a/spring-boot/src/main/resources/org/springframework/boot/logging/log4j/basic-log4j.properties +++ b/spring-boot/src/main/resources/org/springframework/boot/logging/log4j/basic-log4j.properties @@ -13,3 +13,5 @@ log4j.category.org.apache.coyote.http11.Http11NioProtocol=WARN log4j.category.org.crsh.plugin=WARN log4j.category.org.apache.tomcat.util.net.NioSelectorPool=WARN log4j.category.org.apache.catalina.startup.DigesterFactory=ERROR +log4j.category.org.apache.catalina.util.LifecycleBase=ERROR +log4j.category.org.eclipse.jetty.util.component.AbstractLifeCycle=ERROR diff --git a/spring-boot/src/main/resources/org/springframework/boot/logging/log4j/log4j.properties b/spring-boot/src/main/resources/org/springframework/boot/logging/log4j/log4j.properties index 0cb4585593..58baefaced 100644 --- a/spring-boot/src/main/resources/org/springframework/boot/logging/log4j/log4j.properties +++ b/spring-boot/src/main/resources/org/springframework/boot/logging/log4j/log4j.properties @@ -21,3 +21,5 @@ log4j.category.org.apache.coyote.http11.Http11NioProtocol=WARN log4j.category.org.crsh.plugin=WARN log4j.category.org.apache.tomcat.util.net.NioSelectorPool=WARN log4j.category.org.apache.catalina.startup.DigesterFactory=ERROR +log4j.category.org.apache.catalina.util.LifecycleBase=ERROR +log4j.category.org.eclipse.jetty.util.component.AbstractLifeCycle=ERROR diff --git a/spring-boot/src/main/resources/org/springframework/boot/logging/logback/basic.xml b/spring-boot/src/main/resources/org/springframework/boot/logging/logback/basic.xml index 5be82ccb4c..cbddd773bf 100644 --- a/spring-boot/src/main/resources/org/springframework/boot/logging/logback/basic.xml +++ b/spring-boot/src/main/resources/org/springframework/boot/logging/logback/basic.xml @@ -24,6 +24,8 @@ + +