From c3bf8541d75b1beef767f896e9326ab1241e813e Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Thu, 5 Apr 2018 11:22:35 +0100 Subject: [PATCH] Do not rely on findAvailableTcpPort finding an available port Closes gh-12779 --- .../boot/web/embedded/undertow/UndertowServletWebServer.java | 5 ++++- .../servlet/server/AbstractServletWebServerFactoryTests.java | 1 - 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/undertow/UndertowServletWebServer.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/undertow/UndertowServletWebServer.java index d86d8bff39f..a39c70035de 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/undertow/UndertowServletWebServer.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/undertow/UndertowServletWebServer.java @@ -266,7 +266,10 @@ public class UndertowServletWebServer implements WebServer { List ports = new ArrayList<>(); for (Object listener : extractListeners()) { try { - ports.add(getPortFromListener(listener)); + Port port = getPortFromListener(listener); + if (port.getNumber() != 0) { + ports.add(port); + } } catch (Exception ex) { // Continue diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/servlet/server/AbstractServletWebServerFactoryTests.java b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/servlet/server/AbstractServletWebServerFactoryTests.java index b17cea6b49a..1daa28f4d5b 100644 --- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/servlet/server/AbstractServletWebServerFactoryTests.java +++ b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/servlet/server/AbstractServletWebServerFactoryTests.java @@ -933,7 +933,6 @@ public abstract class AbstractServletWebServerFactoryTests { doWithBlockedPort((port) -> { try { AbstractServletWebServerFactory factory = getFactory(); - factory.setPort(SocketUtils.findAvailableTcpPort(40000)); addConnector(port, factory); AbstractServletWebServerFactoryTests.this.webServer = factory .getWebServer();