On Fri, 18 Aug 2023 13:30:54 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: > > re-write close method Changes requested by aefimov (Reviewer). src/java.naming/share/classes/com/sun/jndi/ldap/Connection.java line 293: > 291: } else { // NO SocketFactory > 292: // create a connected socket without factory > 293: createConnectionSocket(endpoint, connectTimeout); A socket returned by `createConnectionSocket` here needs to be saved to the `socket` variable - currently almost all of the tests that are not using a custom socket factory - fails with: Caused by: java.lang.NullPointerException: Cannot invoke "java.net.Socket.getInputStream()" because "this.sock" is null at java.naming/com.sun.jndi.ldap.Connection.<init>(Connection.java:238) ------------- PR Review: https://git.openjdk.org/jdk/pull/15294#pullrequestreview-1585010623 PR Review Comment: https://git.openjdk.org/jdk/pull/15294#discussion_r1298730216