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 d47ad9a7b7d..fa2d97b2994 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 @@ -1,5 +1,5 @@ /* - * Copyright 2012-2017 the original author or authors. + * Copyright 2012-2018 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -155,9 +155,11 @@ public class JettyEmbeddedServletContainer implements EmbeddedServletContainer { .info("Jetty started on port(s) " + getActualPortsDescription()); } catch (EmbeddedServletContainerException ex) { + stopSilently(); throw ex; } catch (Exception ex) { + stopSilently(); throw new EmbeddedServletContainerException( "Unable to start embedded Jetty servlet container", ex); } diff --git a/spring-boot/src/test/java/org/springframework/boot/context/embedded/jetty/JettyEmbeddedServletContainerFactoryTests.java b/spring-boot/src/test/java/org/springframework/boot/context/embedded/jetty/JettyEmbeddedServletContainerFactoryTests.java index 58ebaa52a3b..f78c965ac34 100644 --- a/spring-boot/src/test/java/org/springframework/boot/context/embedded/jetty/JettyEmbeddedServletContainerFactoryTests.java +++ b/spring-boot/src/test/java/org/springframework/boot/context/embedded/jetty/JettyEmbeddedServletContainerFactoryTests.java @@ -357,7 +357,16 @@ public class JettyEmbeddedServletContainerFactoryTests }); this.thrown.expect(EmbeddedServletContainerException.class); - factory.getEmbeddedServletContainer().start(); + JettyEmbeddedServletContainer jettyContainer = (JettyEmbeddedServletContainer) factory + .getEmbeddedServletContainer(); + try { + jettyContainer.start(); + } + finally { + QueuedThreadPool threadPool = (QueuedThreadPool) jettyContainer.getServer() + .getThreadPool(); + assertThat(threadPool.isRunning()).isFalse(); + } } @Test