You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2015/11/08 17:52:42 UTC
svn commit: r1713248 - in /tomcat/trunk/java/org/apache:
coyote/ajp/AjpNioProtocol.java coyote/http11/Http11NioProtocol.java
tomcat/util/net/NioEndpoint.java
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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org