Merge branch '2.2.x'

Closes gh-19774
This commit is contained in:
Andy Wilkinson 2020-01-16 10:06:24 +00:00
commit 9b5af810dd
2 changed files with 25 additions and 3 deletions

View File

@ -1,5 +1,5 @@
/*
* Copyright 2012-2019 the original author or authors.
* Copyright 2012-2020 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.
@ -327,9 +327,9 @@ public class JettyServletWebServerFactory extends AbstractServletWebServerFactor
ServletContextInitializer... initializers) {
List<Configuration> configurations = new ArrayList<>();
configurations.add(getServletContextInitializerConfiguration(webAppContext, initializers));
configurations.addAll(getConfigurations());
configurations.add(getErrorPageConfiguration());
configurations.add(getMimeTypeConfiguration());
configurations.addAll(getConfigurations());
return configurations.toArray(new Configuration[0]);
}

View File

@ -1,5 +1,5 @@
/*
* Copyright 2012-2019 the original author or authors.
* Copyright 2012-2020 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.
@ -35,8 +35,10 @@ import org.eclipse.jetty.server.SslConnectionFactory;
import org.eclipse.jetty.server.handler.ErrorHandler;
import org.eclipse.jetty.server.handler.HandlerCollection;
import org.eclipse.jetty.server.handler.HandlerWrapper;
import org.eclipse.jetty.servlet.ErrorPageErrorHandler;
import org.eclipse.jetty.util.thread.QueuedThreadPool;
import org.eclipse.jetty.util.thread.ThreadPool;
import org.eclipse.jetty.webapp.AbstractConfiguration;
import org.eclipse.jetty.webapp.Configuration;
import org.eclipse.jetty.webapp.WebAppContext;
import org.junit.jupiter.api.Test;
@ -301,4 +303,24 @@ class JettyServletWebServerFactoryTests extends AbstractJettyServletWebServerFac
});
}
@Test
void errorHandlerCanBeOverridden() {
JettyServletWebServerFactory factory = getFactory();
factory.addConfigurations(new AbstractConfiguration() {
@Override
public void configure(WebAppContext context) throws Exception {
context.setErrorHandler(new CustomErrorHandler());
}
});
JettyWebServer jettyWebServer = (JettyWebServer) factory.getWebServer();
WebAppContext context = (WebAppContext) jettyWebServer.getServer().getHandler();
assertThat(context.getErrorHandler()).isInstanceOf(CustomErrorHandler.class);
}
private static class CustomErrorHandler extends ErrorPageErrorHandler {
}
}