On Fri, 5 Feb 2021 20:48:56 GMT, Fernando Guallini <fguall...@openjdk.org> wrote:
>> The server side is binding to the wildcard address which has been a source >> of instability in many networking tests due to javax.net.ssl.SSLException: >> Connection reset. Changing the following tests to bind to loopback address >> fixes intermittent failures: >> sun/security/ssl/SSLSocketImpl/ReverseNameLookup.java >> javax/net/ssl/TLSCommon/TLSTest.java >> sun/security/ssl/CipherSuite/SupportedGroups.java >> >> >> javax/net/ssl/SSLSession/TestEnabledProtocols.java still throws a connection >> reset occasionally because the server closes the connection before the >> client is done during handshake. That race condition cannot be completely >> removed in this test, thus is now handled and logged. > > Fernando Guallini has updated the pull request incrementally with one > additional commit since the last revision: > > narrow down connection reset handling test/jdk/javax/net/ssl/SSLSession/TestEnabledProtocols.java line 142: > 140: if ("Connection reset".equals(ssle.getCause().getMessage())) > { > 141: System.out.println("Client SSLException:"); > 142: ssle.printStackTrace(System.out); An SSLException doesn't necessarily have a nested `cause` - so you could get a NPE here. I would suggest moving that code to a `private boolean isConnectionReset(SSLException ssle)` method, and possibly checking the type of the `cause` exception as well. I'm guessing it should be a `SocketException`? If you check the type then it will also exclude the case were the cause is null and avoid the NPE. Additional note: as a general rule, relying on exception message is fragile. But since we don't have a specific subtype for "Connection reset" it's probably the best we can do. ------------- PR: https://git.openjdk.java.net/jdk/pull/2405