RFR 15 8243099: SO_INCOMING_NAPI_ID support
Alan Bateman
Alan.Bateman at oracle.com
Tue May 5 08:08:25 UTC 2020
On 04/05/2020 22:21, Ivanov, Vladimir A wrote:
> Thanks for your comments.
>
> Updated version of the patch available as http://cr.openjdk.java.net/~sviswanathan/Vladimir/8243099/webrev.07/
> The exception part for the setOption method was updated
> + } else if (option == SO_INCOMING_NAPI_ID) {
> + if (!incomingNapiIdOptSupported)
> + throw new UnsupportedOperationException("Attempt to set unsupported option " + option);
> + else
> + throw new IOException("Attempt to set read only option " + option);
>
> It required to update the method's description. As side effect some application may report compile error for the 'setOption' method usage while one more
> exception should be added to processing.
>
> The Javadoc and the ExtOptionNAPITest.java were updated to use IOE instead of UOE.
>
> Tests "test/jdk/jdk/net/Sockets test/jdk/java/net/SocketOption/AfterClose.java test/jdk/java/nio/channels/etc/PrintSupportedOptions.java" passed on the
> RHEL8 (with NAPI support) and the RHEL7.7 (without NAPI support).
A SocketException is an IOException so no need for both in the setOption
declaration. The method is internal so it's not going to impact anyone
using any of the supported APIs. That said, it might be more consistent
to throw SocketException here and that will avoid needing to change the
declarations.
So assuming s/IOException/SocketException/ then I think the javadoc
looks okay. A residual question from the discussion is whether you want
to make it clear that the identifier is a positive Integer. Once we have
the javadoc agreed here then you should get the CSR submitted.
I don't think ExtOptionNAPITest is ready for review. I think we need a
simpler test that is reliable and easy to maintain. It will need to
exercise each of the network channels (defined in java.nio.channels) in
addition to the socket APIs defined in java.net. It is important that
the listener binds to an ephemeral port as we can't used fixed ports in
tests. It's also important that all tests do cleanup (the current
ExtOptionNAPITest leaves many sockets open). We can iterate on the test
here in parallel with the CSR.
-Alan
More information about the net-dev
mailing list