From 4b3f5f1233b9e06619a90250d8492aac993894c7 Mon Sep 17 00:00:00 2001 From: Daniel Fuchs Date: Thu, 27 Jun 2024 07:27:36 +0100 Subject: [PATCH] Avoid using wildcard address on macOS if possible --- .../nio/channels/DatagramChannel/AdaptorBasic.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/test/jdk/java/nio/channels/DatagramChannel/AdaptorBasic.java b/test/jdk/java/nio/channels/DatagramChannel/AdaptorBasic.java index 38b74c8970acf..504b648dcb6dc 100644 --- a/test/jdk/java/nio/channels/DatagramChannel/AdaptorBasic.java +++ b/test/jdk/java/nio/channels/DatagramChannel/AdaptorBasic.java @@ -36,6 +36,8 @@ import java.util.*; import java.lang.reflect.Field; +import jdk.test.lib.Platform; + public class AdaptorBasic { @@ -118,7 +120,13 @@ static void test(InetSocketAddress dst, while (true) { DatagramChannel dc = DatagramChannel.open(); ds = dc.socket(); - ds.bind(new InetSocketAddress(0)); + if (Platform.isOSX() && dst.getAddress().isLoopbackAddress()) { + // avoid binding to the wildcard on macOS if possible, in order to limit + // potential port conflict issues + ds.bind(new InetSocketAddress(InetAddress.getLoopbackAddress(), 0)); + } else { + ds.bind(new InetSocketAddress(0)); + } // on some systems it may be possible to bind two sockets // to the same port if one of them is bound to the wildcard, // if that happens, try again...