Upgrade to Jetty 9.4.14.v20181114

Closes gh-15239
pull/16240/head
Andy Wilkinson 6 years ago
parent bb40e2ed24
commit aa9945c86c

@ -111,7 +111,7 @@
<jedis.version>2.9.0</jedis.version>
<jersey.version>2.25.1</jersey.version>
<jest.version>2.0.4</jest.version>
<jetty.version>9.4.12.v20180830</jetty.version>
<jetty.version>9.4.14.v20181114</jetty.version>
<jetty-jsp.version>2.2.0.v201112011158</jetty-jsp.version>
<jetty-el.version>8.0.33</jetty-el.version>
<jms-api.version>1.1-rev-1</jms-api.version>

@ -16,6 +16,7 @@
package org.springframework.boot.context.embedded.jetty;
import java.io.IOException;
import java.net.BindException;
import java.util.List;
@ -142,8 +143,9 @@ public class JettyEmbeddedServletContainer implements EmbeddedServletContainer {
try {
connector.start();
}
catch (BindException ex) {
if (connector instanceof NetworkConnector) {
catch (IOException ex) {
if (connector instanceof NetworkConnector
&& findBindException(ex) != null) {
throw new PortInUseException(
((NetworkConnector) connector).getPort());
}
@ -166,6 +168,16 @@ public class JettyEmbeddedServletContainer implements EmbeddedServletContainer {
}
}
private BindException findBindException(Throwable ex) {
if (ex == null) {
return null;
}
if (ex instanceof BindException) {
return (BindException) ex;
}
return findBindException(ex.getCause());
}
private String getActualPortsDescription() {
StringBuilder ports = new StringBuilder();
for (Connector connector : this.server.getConnectors()) {

@ -18,7 +18,6 @@ package org.springframework.boot.context.embedded.jetty;
import javax.servlet.ServletException;
import org.eclipse.jetty.util.component.AbstractLifeCycle;
import org.eclipse.jetty.webapp.AbstractConfiguration;
import org.eclipse.jetty.webapp.Configuration;
import org.eclipse.jetty.webapp.WebAppContext;
@ -49,54 +48,35 @@ public class ServletContextInitializerConfiguration extends AbstractConfiguratio
@Override
public void configure(WebAppContext context) throws Exception {
context.addBean(new Initializer(context), true);
}
/**
* Jetty {@link AbstractLifeCycle} to call the {@link ServletContextInitializer
* ServletContextInitializers}.
*/
private class Initializer extends AbstractLifeCycle {
private final WebAppContext context;
Initializer(WebAppContext context) {
this.context = context;
}
@Override
protected void doStart() throws Exception {
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
Thread.currentThread().setContextClassLoader(this.context.getClassLoader());
Thread.currentThread().setContextClassLoader(context.getClassLoader());
try {
callInitializers();
callInitializers(context);
}
finally {
Thread.currentThread().setContextClassLoader(classLoader);
}
}
private void callInitializers() throws ServletException {
private void callInitializers(WebAppContext context) throws ServletException {
try {
setExtendedListenerTypes(true);
for (ServletContextInitializer initializer : ServletContextInitializerConfiguration.this.initializers) {
initializer.onStartup(this.context.getServletContext());
setExtendedListenerTypes(context, true);
for (ServletContextInitializer initializer : this.initializers) {
initializer.onStartup(context.getServletContext());
}
}
finally {
setExtendedListenerTypes(false);
setExtendedListenerTypes(context, false);
}
}
private void setExtendedListenerTypes(boolean extended) {
private void setExtendedListenerTypes(WebAppContext context, boolean extended) {
try {
this.context.getServletContext().setExtendedListenerTypes(extended);
context.getServletContext().setExtendedListenerTypes(extended);
}
catch (NoSuchMethodError ex) {
// Not available on Jetty 8
}
}
}
}

Loading…
Cancel
Save