This is an automated email from the ASF dual-hosted git repository. remm pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/master by this push: new e2d5a04 Remove legacy NIO double close e2d5a04 is described below commit e2d5a040b962a904db5264b3cb3282c6b05f823c Author: remm <r...@apache.org> AuthorDate: Wed May 22 00:43:09 2019 +0200 Remove legacy NIO double close Closing the socket is not necessary. I found information on Java 1.4, 5 and 6 having possible issues that needed the socket close, but this is now fixed. NIO2 from Java 7 doesn't give the user a choice as its channel doesn't expose the socket to avoid abuse and bad practices. --- java/org/apache/tomcat/util/net/NioChannel.java | 8 ++++---- java/org/apache/tomcat/util/net/NioEndpoint.java | 8 -------- webapps/docs/changelog.xml | 4 ++++ 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/java/org/apache/tomcat/util/net/NioChannel.java b/java/org/apache/tomcat/util/net/NioChannel.java index 9489b72..d3f2766 100644 --- a/java/org/apache/tomcat/util/net/NioChannel.java +++ b/java/org/apache/tomcat/util/net/NioChannel.java @@ -40,11 +40,10 @@ public class NioChannel implements ByteChannel, ScatteringByteChannel, Gathering protected static final ByteBuffer emptyBuf = ByteBuffer.allocate(0); + protected final SocketBufferHandler bufHandler; protected SocketChannel sc = null; protected NioSocketWrapper socketWrapper = null; - protected final SocketBufferHandler bufHandler; - public NioChannel(SocketChannel channel, SocketBufferHandler bufHandler) { this.sc = channel; this.bufHandler = bufHandler; @@ -102,7 +101,6 @@ public class NioChannel implements ByteChannel, ScatteringByteChannel, Gathering */ @Override public void close() throws IOException { - sc.socket().close(); sc.close(); } @@ -114,7 +112,9 @@ public class NioChannel implements ByteChannel, ScatteringByteChannel, Gathering * @throws IOException If closing the secure channel fails. */ public void close(boolean force) throws IOException { - if (isOpen() || force ) close(); + if (isOpen() || force) { + close(); + } } /** diff --git a/java/org/apache/tomcat/util/net/NioEndpoint.java b/java/org/apache/tomcat/util/net/NioEndpoint.java index a23448b..62dbab2 100644 --- a/java/org/apache/tomcat/util/net/NioEndpoint.java +++ b/java/org/apache/tomcat/util/net/NioEndpoint.java @@ -350,7 +350,6 @@ public class NioEndpoint extends AbstractJsseEndpoint<NioChannel,SocketChannel> protected void doCloseServerSocket() throws IOException { if (!getUseInheritedChannel() && serverSock != null) { // Close server socket - serverSock.socket().close(); serverSock.close(); } serverSock = null; @@ -442,13 +441,6 @@ public class NioEndpoint extends AbstractJsseEndpoint<NioChannel,SocketChannel> protected void closeSocket(SocketChannel socket) { countDownConnection(); try { - socket.socket().close(); - } catch (IOException ioe) { - if (log.isDebugEnabled()) { - log.debug(sm.getString("endpoint.err.close"), ioe); - } - } - try { socket.close(); } catch (IOException ioe) { if (log.isDebugEnabled()) { diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 6bc0dd5..3155c8c 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -148,6 +148,10 @@ Add support for same-site cookie attribute. Patch provided by John Kelly. (markt) </add> + <fix> + Drop legacy NIO double socket close (close channel, then close + socket). (remm) + </fix> </changelog> </subsection> <subsection name="Cluster"> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org