From 78c15bc8387d565b71144d5a7d9b227178e44173 Mon Sep 17 00:00:00 2001 From: Krzysiek Date: Thu, 2 Dec 2021 12:58:13 +0100 Subject: [PATCH] JAVA-8748: Use ServerSocket(0) approach to get free port --- .../baeldung/socket/FindFreePortUnitTest.java | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/core-java-modules/core-java-networking-3/src/test/java/com/baeldung/socket/FindFreePortUnitTest.java b/core-java-modules/core-java-networking-3/src/test/java/com/baeldung/socket/FindFreePortUnitTest.java index 679503cb6d..4dfc114438 100644 --- a/core-java-modules/core-java-networking-3/src/test/java/com/baeldung/socket/FindFreePortUnitTest.java +++ b/core-java-modules/core-java-networking-3/src/test/java/com/baeldung/socket/FindFreePortUnitTest.java @@ -9,7 +9,6 @@ import org.springframework.util.SocketUtils; import java.io.IOException; import java.net.ServerSocket; -import java.util.Random; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.fail; @@ -148,19 +147,10 @@ public class FindFreePortUnitTest { } private int getFreePort() { - return new Random() - .ints(36000, 65000) - .filter(FindFreePortUnitTest::isFree) - .findFirst() - .orElse(DEFAULT_RANDOM_PORT); - } - - private static boolean isFree(int port) { - try { - new ServerSocket(port).close(); - return true; - } catch (IOException e) { - return false; + try(ServerSocket serverSocket = new ServerSocket(0)){ + return serverSocket.getLocalPort(); + } catch (IOException ex){ + return DEFAULT_RANDOM_PORT; } } }