From 8249929b6815e43e4096d9769062d8da4817b5ee Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Tue, 11 Nov 2025 16:35:24 +0000 Subject: [PATCH] Revert "Stop throwing PortInUseException for unassignable address" This reverts commit 5229ac7e5882cbfbdeb5aecbb9f199f770776cf1. The change works on macOS but not on Linux. See gh-47618 --- .../boot/web/embedded/netty/NettyWebServer.java | 2 +- .../netty/NettyReactiveWebServerFactoryTests.java | 13 +------------ 2 files changed, 2 insertions(+), 13 deletions(-) diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/netty/NettyWebServer.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/netty/NettyWebServer.java index 61180e9f5f6..236c7b39929 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/netty/NettyWebServer.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/netty/NettyWebServer.java @@ -117,7 +117,7 @@ public class NettyWebServer implements WebServer { catch (Exception ex) { PortInUseException.ifCausedBy(ex, ChannelBindException.class, (bindException) -> { if (bindException.localPort() > 0 && !isPermissionDenied(bindException.getCause())) { - PortInUseException.throwIfPortBindingException(bindException, bindException::localPort); + throw new PortInUseException(bindException.localPort(), ex); } }); throw new WebServerException("Unable to start Netty", ex); diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/embedded/netty/NettyReactiveWebServerFactoryTests.java b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/embedded/netty/NettyReactiveWebServerFactoryTests.java index fa09e787b6b..cb03e6efb0e 100644 --- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/embedded/netty/NettyReactiveWebServerFactoryTests.java +++ b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/embedded/netty/NettyReactiveWebServerFactoryTests.java @@ -17,9 +17,7 @@ package org.springframework.boot.web.embedded.netty; import java.net.ConnectException; -import java.net.InetAddress; import java.net.SocketAddress; -import java.net.UnknownHostException; import java.time.Duration; import java.util.Arrays; @@ -47,7 +45,6 @@ import org.springframework.boot.web.reactive.server.AbstractReactiveWebServerFac import org.springframework.boot.web.server.PortInUseException; import org.springframework.boot.web.server.Shutdown; import org.springframework.boot.web.server.Ssl; -import org.springframework.boot.web.server.WebServerException; import org.springframework.http.MediaType; import org.springframework.http.client.ReactorResourceFactory; import org.springframework.http.client.reactive.ReactorClientHttpConnector; @@ -73,7 +70,7 @@ import static org.mockito.Mockito.mock; class NettyReactiveWebServerFactoryTests extends AbstractReactiveWebServerFactoryTests { @Test - void portInUseExceptionIsThrownWhenPortIsAlreadyInUse() { + void exceptionIsThrownWhenPortIsAlreadyInUse() { AbstractReactiveWebServerFactory factory = getFactory(); factory.setPort(0); this.webServer = factory.getWebServer(new EchoHandler()); @@ -84,14 +81,6 @@ class NettyReactiveWebServerFactoryTests extends AbstractReactiveWebServerFactor .withCauseInstanceOf(Throwable.class); } - @Test - void webServerExceptionIsThrownWhenAddressCannotBeAssigned() throws UnknownHostException { - AbstractReactiveWebServerFactory factory = getFactory(); - factory.setPort(8080); - factory.setAddress(InetAddress.getByName("1.2.3.4")); - assertThatExceptionOfType(WebServerException.class).isThrownBy(factory.getWebServer(new EchoHandler())::start); - } - @Test void getPortWhenDisposableServerPortOperationIsUnsupportedReturnsMinusOne() { NettyReactiveWebServerFactory factory = new NoPortNettyReactiveWebServerFactory(0);