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 0c42530 Avoid retrieving the selection key on Java 11
0c42530 is described below
commit 0c42530829bafa745a7d0e36c5d4f0ccedf0ef84
Author: remm <[email protected]>
AuthorDate: Wed Mar 18 16:44:23 2020 +0100
Avoid retrieving the selection key on Java 11
In that case, cancelledKey only closes the socket wrapper.
---
java/org/apache/tomcat/util/net/NioEndpoint.java | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/java/org/apache/tomcat/util/net/NioEndpoint.java
b/java/org/apache/tomcat/util/net/NioEndpoint.java
index 7012782..b3947c9 100644
--- a/java/org/apache/tomcat/util/net/NioEndpoint.java
+++ b/java/org/apache/tomcat/util/net/NioEndpoint.java
@@ -1569,23 +1569,27 @@ public class NioEndpoint extends
AbstractJsseEndpoint<NioChannel,SocketChannel>
state = getHandler().process(socketWrapper, event);
}
if (state == SocketState.CLOSED) {
-
poller.cancelledKey(socket.getIOChannel().keyFor(poller.getSelector()),
socketWrapper);
+ SelectionKey key = JreCompat.isJre11Available() ? null
: socket.getIOChannel().keyFor(poller.getSelector());
+ poller.cancelledKey(key, socketWrapper);
}
} else if (handshake == -1 ) {
getHandler().process(socketWrapper,
SocketEvent.CONNECT_FAIL);
-
poller.cancelledKey(socket.getIOChannel().keyFor(poller.getSelector()),
socketWrapper);
+ SelectionKey key = JreCompat.isJre11Available() ? null :
socket.getIOChannel().keyFor(poller.getSelector());
+ poller.cancelledKey(key, socketWrapper);
} else if (handshake == SelectionKey.OP_READ){
socketWrapper.registerReadInterest();
} else if (handshake == SelectionKey.OP_WRITE){
socketWrapper.registerWriteInterest();
}
} catch (CancelledKeyException cx) {
-
poller.cancelledKey(socket.getIOChannel().keyFor(poller.getSelector()),
socketWrapper);
+ SelectionKey key = JreCompat.isJre11Available() ? null :
socket.getIOChannel().keyFor(poller.getSelector());
+ poller.cancelledKey(key, socketWrapper);
} catch (VirtualMachineError vme) {
ExceptionUtils.handleThrowable(vme);
} catch (Throwable t) {
log.error(sm.getString("endpoint.processing.fail"), t);
-
poller.cancelledKey(socket.getIOChannel().keyFor(poller.getSelector()),
socketWrapper);
+ SelectionKey key = JreCompat.isJre11Available() ? null :
socket.getIOChannel().keyFor(poller.getSelector());
+ poller.cancelledKey(key, socketWrapper);
} finally {
socketWrapper = null;
event = null;
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]