7010192: InetAddress.isReachable hits ShouldNotReachHere with hs20-b04 (win)
Chris Hegarty
chris.hegarty at oracle.com
Tue Jan 4 07:38:01 PST 2011
The changes look fine.
-Chris.
On 04/01/2011 15:08, Alan Bateman wrote:
>
> jdk7-b123 has hs20-b04 and so has the changes to 6348631 to remove the
> dependency on the HPI library. One causality is that
> InetAddress.isReachable now crashes the VM on Windows as it hits a
> ShouldNotReachHere guarantee. This is because isReachable is using
> JVM_GetSockOpt which ends up calling the unimplemented os::get_sock_opt.
> On Windows there is no need to use the JVM_* networking functions so the
> simplest fix is to change this code to use getsockopt directly (I've
> deliberately avoiding calling NET_GetSockOpt because this is IPv4 or
> IPv6 specific code). The proposed patch is attached.
>
> -Alan
>
>
> diff -r 3254c3ae63fe src/windows/native/java/net/Inet4AddressImpl.c
> --- a/src/windows/native/java/net/Inet4AddressImpl.c Mon Dec 27 11:39:59
> 2010 -0800
> +++ b/src/windows/native/java/net/Inet4AddressImpl.c Tue Jan 04 14:59:48
> 2011 +0000
> @@ -559,8 +559,8 @@ Java_java_net_Inet4AddressImpl_isReachab
>
> if (timeout >= 0) {
> optlen = sizeof(connect_rv);
> - if (JVM_GetSockOpt(fd, SOL_SOCKET, SO_ERROR, (void*)&connect_rv,
> - &optlen) <0) {
> + if (getsockopt(fd, SOL_SOCKET, SO_ERROR, (void*)&connect_rv,
> + &optlen) <0) {
> connect_rv = WSAGetLastError();
> }
>
> diff -r 3254c3ae63fe src/windows/native/java/net/Inet6AddressImpl.c
> --- a/src/windows/native/java/net/Inet6AddressImpl.c Mon Dec 27 11:39:59
> 2010 -0800
> +++ b/src/windows/native/java/net/Inet6AddressImpl.c Tue Jan 04 14:59:48
> 2011 +0000
> @@ -671,8 +671,8 @@ Java_java_net_Inet6AddressImpl_isReachab
> if (timeout >= 0) {
> /* has connection been established? */
> optlen = sizeof(connect_rv);
> - if (JVM_GetSockOpt(fd, SOL_SOCKET, SO_ERROR, (void*)&connect_rv,
> - &optlen) <0) {
> + if (getsockopt(fd, SOL_SOCKET, SO_ERROR, (void*)&connect_rv,
> + &optlen) <0) {
> connect_rv = WSAGetLastError();
> }
>
More information about the net-dev
mailing list