# HG changeset patch # User igerasim # Date 1517872813 28800 # Node ID 01f51b57dc8b02175b3dfd41e92248e279b38f7c # Parent 76d2b21336146591628798072d5bc6a79ab145ff 8196224: Even better Internet address support Reviewed-by: chegar, rriggs, rhalade, vtewari diff -r 76d2b2133614 -r 01f51b57dc8b src/solaris/native/java/net/PlainDatagramSocketImpl.c --- a/src/solaris/native/java/net/PlainDatagramSocketImpl.c Tue Jun 26 23:58:35 2018 +0100 +++ b/src/solaris/native/java/net/PlainDatagramSocketImpl.c Mon Feb 05 15:20:13 2018 -0800 @@ -1137,6 +1137,7 @@ struct in_addr in; jobjectArray addrArray; jsize len; + jint family; jobject addr; int i; @@ -1166,7 +1167,9 @@ */ for (i = 0; i < len; i++) { addr = (*env)->GetObjectArrayElement(env, addrArray, i); - if (getInetAddress_family(env, addr) == IPv4) { + family = getInetAddress_family(env, addr); + JNU_CHECK_EXCEPTION(env); + if (family == IPv4) { JNU_CHECK_EXCEPTION(env); in.s_addr = htonl(getInetAddress_addr(env, addr)); JNU_CHECK_EXCEPTION(env); @@ -2086,6 +2089,7 @@ jobject fdObj = (*env)->GetObjectField(env, this, pdsi_fdID); jint fd; + jint family; jint ipv6_join_leave; if (IS_NULL(fdObj)) { @@ -2107,7 +2111,9 @@ ipv6_join_leave = ipv6_available(); #ifdef __linux__ - if (getInetAddress_family(env, iaObj) == IPv4) { + family = getInetAddress_family(env, iaObj); + JNU_CHECK_EXCEPTION(env); + if (family == IPv4) { JNU_CHECK_EXCEPTION(env); ipv6_join_leave = JNI_FALSE; }