8238376: test/jdk/java/nio/channels/DatagramChannel/Loopback.java failing on multi-homed systems

Daniel Fuchs daniel.fuchs at oracle.com
Mon Feb 10 10:50:20 UTC 2020


Hi Alan,

LGTM. Thanks for taking care of this one!

best regards,

-- daniel

On 09/02/2020 16:14, Alan Bateman wrote:
> test/jdk/java/nio/channels/DatagramChannel/Loopback.java is a test we 
> added recently to check the behavior of the IP_MULTICAST_LOOP socket 
> option. This tests is failing on test systems that are connected to 
> several networks because the test doesn't set the interface for outgoing 
> multicast datagrams. Amy Lu has checked the test passes with this change.
> 
> -Alan
> 
> --- a/test/jdk/java/nio/channels/DatagramChannel/Loopback.java
> +++ b/test/jdk/java/nio/channels/DatagramChannel/Loopback.java
> @@ -1,5 +1,5 @@
>   /*
> - * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
> + * Copyright (c) 2019, 2020, Oracle and/or its affiliates. All rights 
> reserved.
>    * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
>    *
>    * This code is free software; you can redistribute it and/or modify it
> @@ -45,7 +45,9 @@
>   import java.nio.channels.Selector;
>   import java.util.List;
>   import java.util.stream.Collectors;
> -import static java.net.StandardProtocolFamily.*;
> +import static java.net.StandardProtocolFamily.INET;
> +import static java.net.StandardProtocolFamily.INET6;
> +import static java.net.StandardSocketOptions.IP_MULTICAST_IF;
>   import static java.net.StandardSocketOptions.IP_MULTICAST_LOOP;
> 
>   import jdk.test.lib.NetworkConfiguration;
> @@ -106,6 +108,9 @@
>               System.out.format("join %s @ %s%n", 
> group.getHostAddress(), ni.getName());
>               dc.join(group, ni);
> 
> +            System.out.format("set outgoing multicast interface to 
> %s%n", ni.getName());
> +            dc.setOption(IP_MULTICAST_IF, ni);
> +
>               // -- IP_MULTICAST_LOOP enabled --
> 
>               assertTrue(dc.getOption(IP_MULTICAST_LOOP), 
> "IP_MULTICAST_LOOP not enabled");



More information about the nio-dev mailing list