Author: markt Date: Sun Nov 8 16:52:41 2015 New Revision: 1713248 URL: http://svn.apache.org/viewvc?rev=1713248&view=rev Log: No need for NioEndpoint.Handler.release() since if there is no attachment there can't be an associated Processor to release
Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProtocol.java tomcat/trunk/java/org/apache/coyote/http11/Http11NioProtocol.java tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProtocol.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProtocol.java?rev=1713248&r1=1713247&r2=1713248&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProtocol.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProtocol.java Sun Nov 8 16:52:41 2015 @@ -16,10 +16,6 @@ */ package org.apache.coyote.ajp; -import java.nio.channels.SocketChannel; -import java.util.Iterator; - -import org.apache.coyote.Processor; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; import org.apache.tomcat.util.net.NioChannel; @@ -69,31 +65,5 @@ public class AjpNioProtocol extends Abst protected Log getLog() { return log; } - - /** - * Expected to be used by the Poller to release resources on socket - * close, errors etc. - */ - @Override - public void release(SocketChannel socket) { - if (log.isDebugEnabled()) - log.debug(sm.getString("ajpnioprotocol.releaseStart", socket)); - boolean released = false; - Iterator<java.util.Map.Entry<NioChannel, Processor>> it = connections.entrySet().iterator(); - while (it.hasNext()) { - java.util.Map.Entry<NioChannel, Processor> entry = it.next(); - if (entry.getKey().getIOChannel()==socket) { - it.remove(); - Processor result = entry.getValue(); - result.recycle(); - unregister(result); - released = true; - break; - } - } - if (log.isDebugEnabled()) - log.debug(sm.getString("ajpnioprotocol.releaseEnd", - socket, Boolean.valueOf(released))); - } } } Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11NioProtocol.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11NioProtocol.java?rev=1713248&r1=1713247&r2=1713248&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/Http11NioProtocol.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11NioProtocol.java Sun Nov 8 16:52:41 2015 @@ -16,10 +16,6 @@ */ package org.apache.coyote.http11; -import java.nio.channels.SocketChannel; -import java.util.Iterator; - -import org.apache.coyote.Processor; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; import org.apache.tomcat.util.net.NioChannel; @@ -105,31 +101,5 @@ public class Http11NioProtocol extends A protected Log getLog() { return log; } - - - /** - * Expected to be used by the Poller to release resources on socket - * close, errors etc. - */ - @Override - public void release(SocketChannel socket) { - if (log.isDebugEnabled()) - log.debug("Iterating through our connections to release a socket channel:"+socket); - boolean released = false; - Iterator<java.util.Map.Entry<NioChannel, Processor>> it = connections.entrySet().iterator(); - while (it.hasNext()) { - java.util.Map.Entry<NioChannel, Processor> entry = it.next(); - if (entry.getKey().getIOChannel()==socket) { - it.remove(); - Processor result = entry.getValue(); - result.recycle(); - unregister(result); - released = true; - break; - } - } - if (log.isDebugEnabled()) - log.debug("Done iterating through our connections to release a socket channel:"+socket +" released:"+released); - } } } Modified: tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java?rev=1713248&r1=1713247&r2=1713248&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Sun Nov 8 16:52:41 2015 @@ -771,8 +771,11 @@ public class NioEndpoint extends Abstrac try { if ( key == null ) return null;//nothing to do ka = (NioSocketWrapper) key.attach(null); - if (ka!=null) handler.release(ka); - else handler.release((SocketChannel)key.channel()); + if (ka != null) { + // If attachment is non-null then there may be a current + // connection with an associated processor. + handler.release(ka); + } if (key.isValid()) key.cancel(); if (key.channel().isOpen()) { try { @@ -1460,7 +1463,6 @@ public class NioEndpoint extends Abstrac * thread local fields. */ public interface Handler extends AbstractEndpoint.Handler<NioChannel> { - public void release(SocketChannel socket); } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org