I think the difference is in setMulticastInterface() in PlainDatagramSocketImpl.c
#ifdef __linux__ mcast_set_if_by_if_v4(env, this, fd, value); if (ipv6_available()) { if ((*env)->ExceptionCheck(env)){ (*env)->ExceptionClear(env); } mcast_set_if_by_if_v6(env, this, fd, value); } #else /* __linux__ not defined */ if (ipv6_available()) { mcast_set_if_by_if_v6(env, this, fd, value); } else { mcast_set_if_by_if_v4(env, this, fd, value); } #endif /* __linux__ */ We should probably follow the Linux way for AIX as well. On Fri, Jan 11, 2019 at 5:29 PM Chris Hegarty <chris.hega...@oracle.com> wrote: > > > On 09/01/2019 15:20, Steve Groeger wrote: > >... > > > > I think I have an Linux system setup with a simarly configured interface > > (system has IPv6 configured but interface > > has no IPv6/INET6 address configured) but the test works fine when run > > on that system. > > This is what I observe too. Confirmed by looking at the test > output in the jtr file. > > > This was why I was asking the question on whether this should work on > > AIX, or whether it should fail on Linux!!! > > I suspect that this is an issue with the native setsockopt > on AIX. That said, if it cannot be resolved on AIX, then > maybe the networking native code on AIX, should workaround > it. > > -Chris.