On Sat, 19 Aug 2023 02:15:06 GMT, Weibing Xiao <[email protected]> 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