@ -23,7 +23,13 @@ import java.util.Locale;
@@ -23,7 +23,13 @@ import java.util.Locale;
import java.util.Map ;
import java.util.concurrent.TimeUnit ;
import javax.servlet.Filter ;
import javax.servlet.FilterChain ;
import javax.servlet.FilterConfig ;
import javax.servlet.ServletContext ;
import javax.servlet.ServletException ;
import javax.servlet.ServletRequest ;
import javax.servlet.ServletResponse ;
import javax.servlet.http.HttpServlet ;
import javax.servlet.http.HttpServletRequest ;
import javax.servlet.http.HttpServletResponse ;
@ -45,8 +51,10 @@ import org.mockito.InOrder;
@@ -45,8 +51,10 @@ import org.mockito.InOrder;
import org.springframework.boot.context.embedded.AbstractEmbeddedServletContainerFactory ;
import org.springframework.boot.context.embedded.AbstractEmbeddedServletContainerFactoryTests ;
import org.springframework.boot.context.embedded.Compression ;
import org.springframework.boot.context.embedded.EmbeddedServletContainerException ;
import org.springframework.boot.context.embedded.PortInUseException ;
import org.springframework.boot.context.embedded.Ssl ;
import org.springframework.boot.web.servlet.ServletContextInitializer ;
import org.springframework.boot.web.servlet.ServletRegistrationBean ;
import org.springframework.http.HttpHeaders ;
@ -282,6 +290,38 @@ public class JettyEmbeddedServletContainerFactoryTests
@@ -282,6 +290,38 @@ public class JettyEmbeddedServletContainerFactoryTests
. getThreadPool ( ) ) . isSameAs ( threadPool ) ;
}
@Test
public void faultyFilterCausesStartFailure ( ) throws Exception {
AbstractEmbeddedServletContainerFactory factory = getFactory ( ) ;
factory . addInitializers ( new ServletContextInitializer ( ) {
@Override
public void onStartup ( ServletContext servletContext ) throws ServletException {
servletContext . addFilter ( "faulty" , new Filter ( ) {
@Override
public void init ( FilterConfig filterConfig ) throws ServletException {
throw new ServletException ( "Faulty filter" ) ;
}
@Override
public void doFilter ( ServletRequest request , ServletResponse response ,
FilterChain chain ) throws IOException , ServletException {
chain . doFilter ( request , response ) ;
}
@Override
public void destroy ( ) {
}
} ) ;
}
} ) ;
this . thrown . expect ( EmbeddedServletContainerException . class ) ;
factory . getEmbeddedServletContainer ( ) . start ( ) ;
}
@Override
@SuppressWarnings ( "serial" )
// Workaround for Jetty issue - https://bugs.eclipse.org/bugs/show_bug.cgi?id=470646