On Sat, 19 Aug 2023 02:15:06 GMT, Weibing Xiao <d...@openjdk.org> wrote:
>> Please refer to JDK-8314063. >> >> The failure scenario is due to the setting of connection timeout. It is >> either too small or not an optimal value for the system. When the client >> tries to connect to the server with LDAPs protocol. It requires the >> handshake after the socket is created and connected, but it fails due to >> connection timeout and leaves the socket open. It is not closed properly due >> to the exception handling in the JDK code. >> >> The change is adding a try/catch block and closing the socket in the catch >> block, and the format of the code got changed consequently. > > Weibing Xiao has updated the pull request incrementally with one additional > commit since the last revision: > > refactor the code and test cases test/jdk/com/sun/jndi/ldap/LdapSSLHandshakeFailureTest.java line 84: > 82: } > 83: } > 84: TestServer server = new TestServer( serverSlowDown ); The server instance can be used in try-with-resouces: try (TestServer server = new TestServer(serverSlowDown)) { server.start(); env.put(Context.PROVIDER_URL, URIBuilder.newBuilder() .scheme("ldaps") .loopback() .port(server.getPortNumber()) .buildUnchecked().toString()); test/jdk/com/sun/jndi/ldap/LdapSSLHandshakeFailureTest.java line 94: > 92: .buildUnchecked().toString()); > 93: if (args.length == 2 && > 94: args[0].contains("LdapSSLHandshakeFailureTest")) { This `arg[0]` check is done twice in the test - it can be save to a boolean variable: boolean hasCustomSocketFactory = args[0] .equals("LdapSSLHandshakeFailureTest$CustomSocketFactory"); and then used to the checks ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/15294#discussion_r1300088395 PR Review Comment: https://git.openjdk.org/jdk/pull/15294#discussion_r1300086412