--- old/src/solaris/native/java/net/ExtendedOptionsImpl.c 2014-06-12 18:01:23.029810181 +0100 +++ new/src/solaris/native/java/net/ExtendedOptionsImpl.c 2014-06-12 18:01:22.901810184 +0100 @@ -295,7 +295,7 @@ props.sfp_mask |= SFP_PRIORITY; props.sfp_priority = SFP_PRIO_NORMAL; rv = setsockopt(s, SOL_SOCKET, SO_FLOW_SLA, &props, sizeof(props)); - if (rv != 0 && errno == ENOPROTOOPT) { + if (rv != 0 && (errno == ENOPROTOOPT || errno == EACCES)) { rv = JNI_FALSE; } else { rv = JNI_TRUE; --- old/test/jdk/net/Sockets/Test.java 2014-06-12 18:01:23.433810173 +0100 +++ new/test/jdk/net/Sockets/Test.java 2014-06-12 18:01:23.305810175 +0100 @@ -32,6 +32,7 @@ import java.net.*; import java.nio.channels.*; import java.util.concurrent.*; +import java.util.Set; import jdk.net.*; public class Test { @@ -75,6 +76,13 @@ DatagramSocket dg = new DatagramSocket(0); final int udp_port = dg.getLocalPort(); + // If option not available, end test + Set> options = dg.supportedOptions(); + if (!options.contains(ExtendedSocketOptions.SO_FLOW_SLA)) { + System.out.println("SO_FLOW_SLA not supported"); + return; + } + final Socket s = new Socket("127.0.0.1", tcp_port); final SocketChannel sc = SocketChannel.open(); sc.connect (new InetSocketAddress("127.0.0.1", tcp_port));