Author: remm Date: Tue Dec 19 19:58:25 2017 New Revision: 1818711 URL: http://svn.apache.org/viewvc?rev=1818711&view=rev Log: 61918: Fix connectionLimitLatch counting when closing an already closed socket. Based on a patch by Ryan Fong.
Modified: tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java tomcat/trunk/webapps/docs/changelog.xml Modified: tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java?rev=1818711&r1=1818710&r2=1818711&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java Tue Dec 19 19:58:25 2017 @@ -362,10 +362,14 @@ public class Nio2Endpoint extends Abstra ExceptionUtils.handleThrowable(e); if (log.isDebugEnabled()) log.error("",e); } + Nio2SocketWrapper nio2Socket = (Nio2SocketWrapper) socket; try { synchronized (socket.getSocket()) { - if (socket.getSocket().isOpen()) { + if (!nio2Socket.closed) { + nio2Socket.closed = true; countDownConnection(); + } + if (socket.getSocket().isOpen()) { socket.getSocket().close(true); } } @@ -374,7 +378,6 @@ public class Nio2Endpoint extends Abstra if (log.isDebugEnabled()) log.error("",e); } try { - Nio2SocketWrapper nio2Socket = (Nio2SocketWrapper) socket; if (nio2Socket.getSendfileData() != null && nio2Socket.getSendfileData().fchannel != null && nio2Socket.getSendfileData().fchannel.isOpen()) { @@ -407,6 +410,7 @@ public class Nio2Endpoint extends Abstra private final Semaphore writePending = new Semaphore(1); private boolean writeInterest = false; // Guarded by writeCompletionHandler private boolean writeNotify = false; + private boolean closed = false; private CompletionHandler<Integer, SocketWrapperBase<Nio2Channel>> awaitBytesHandler = new CompletionHandler<Integer, SocketWrapperBase<Nio2Channel>>() { Modified: tomcat/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1818711&r1=1818710&r2=1818711&view=diff ============================================================================== --- tomcat/trunk/webapps/docs/changelog.xml (original) +++ tomcat/trunk/webapps/docs/changelog.xml Tue Dec 19 19:58:25 2017 @@ -71,6 +71,10 @@ Correctly handle EOF when <code>ServletInputStream.isReady()</code> is called. (markt) </fix> + <fix> + <bug>61918</bug>: Fix connectionLimitLatch counting when closing an + already closed socket. Based on a patch by Ryan Fong. (remm) + </fix> </changelog> </subsection> <subsection name="Jasper"> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org