On Thu, 3 Aug 2023 17:32:43 GMT, Weibing Xiao <d...@openjdk.org> wrote:
> com.sun.jndi.ldap.Connection::leanup does not close the underlying socket if > the is an IOException generation when the output stream was flushing the > buffer. > > Please refer to the bug https://bugs.openjdk.org/browse/JDK-8313657. why not restructure the finally block a little ... refactor extract methods flushOutputStream, closeConnectionSocket ... should the outputStream be closed in this finally block, also? } finally { flushOutputStream(outStream); closeConnectionSocket(sock); try { unpauseReader(); } catch (IOException ie) { if (debug) System.err.println("Connection.cleanup: problem with unpuaseReader " + ie); } ... private void flushOutputStream (OutputStream outputStream) { try { outStream.flush(); outStream.close(); } catch (IOException ioEx) { if (debug) System.err.println("Connection.flushOutputStream: OutputStream flush or close problem " + ioEx); } } private void closeConnectionSocket (Socket sock) { //bug 8313657, socket not closed util GC running try { sock.close(); } catch (IOException ioEx) { if (debug) System.err.println("ConnectioncloseConnectioSocket: problem closing socket: " + ioEx); } } ------------- PR Comment: https://git.openjdk.org/jdk/pull/15143#issuecomment-1665777500