Skip to content

Commit 001f953

Browse files
committed
Merge branch '3.5.x'
Closes gh-48059
2 parents 0ae8693 + 4089156 commit 001f953

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

module/spring-boot-reactor-netty/src/main/java/org/springframework/boot/reactor/netty/NettyWebServer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ public void start() throws WebServerException {
121121
catch (Exception ex) {
122122
PortInUseException.ifCausedBy(ex, ChannelBindException.class, (bindException) -> {
123123
if (bindException.localPort() > 0 && !isPermissionDenied(bindException.getCause())) {
124-
throw new PortInUseException(bindException.localPort(), ex);
124+
PortInUseException.throwIfPortBindingException(bindException, bindException::localPort);
125125
}
126126
});
127127
throw new WebServerException("Unable to start Netty", ex);

module/spring-boot-reactor-netty/src/test/java/org/springframework/boot/reactor/netty/NettyReactiveWebServerFactoryTests.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@
1717
package org.springframework.boot.reactor.netty;
1818

1919
import java.net.ConnectException;
20+
import java.net.InetAddress;
2021
import java.net.SocketAddress;
22+
import java.net.UnknownHostException;
2123
import java.time.Duration;
2224
import java.util.Arrays;
2325

@@ -44,6 +46,7 @@
4446
import org.springframework.boot.web.server.PortInUseException;
4547
import org.springframework.boot.web.server.Shutdown;
4648
import org.springframework.boot.web.server.Ssl;
49+
import org.springframework.boot.web.server.WebServerException;
4750
import org.springframework.boot.web.server.reactive.AbstractReactiveWebServerFactory;
4851
import org.springframework.boot.web.server.reactive.AbstractReactiveWebServerFactoryTests;
4952
import org.springframework.boot.web.server.reactive.ConfigurableReactiveWebServerFactory;
@@ -72,7 +75,7 @@
7275
class NettyReactiveWebServerFactoryTests extends AbstractReactiveWebServerFactoryTests {
7376

7477
@Test
75-
void exceptionIsThrownWhenPortIsAlreadyInUse() {
78+
void portInUseExceptionIsThrownWhenPortIsAlreadyInUse() {
7679
AbstractReactiveWebServerFactory factory = getFactory();
7780
factory.setPort(0);
7881
this.webServer = factory.getWebServer(new EchoHandler());
@@ -83,6 +86,14 @@ void exceptionIsThrownWhenPortIsAlreadyInUse() {
8386
.withCauseInstanceOf(Throwable.class);
8487
}
8588

89+
@Test
90+
void webServerExceptionIsThrownWhenAddressCannotBeAssigned() throws UnknownHostException {
91+
AbstractReactiveWebServerFactory factory = getFactory();
92+
factory.setPort(8080);
93+
factory.setAddress(InetAddress.getByName("1.2.3.4"));
94+
assertThatExceptionOfType(WebServerException.class).isThrownBy(factory.getWebServer(new EchoHandler())::start);
95+
}
96+
8697
@Test
8798
void getPortWhenDisposableServerPortOperationIsUnsupportedReturnsMinusOne() {
8899
NettyReactiveWebServerFactory factory = new NoPortNettyReactiveWebServerFactory(0);

0 commit comments

Comments
 (0)