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 2022/02/17 21:50:25 UTC
[tomcat] branch 8.5.x updated: Align with 9.0.x onwards - backport NPE protection
This is an automated email from the ASF dual-hosted git repository.
markt pushed a commit to branch 8.5.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/8.5.x by this push:
new 2f6ce58 Align with 9.0.x onwards - backport NPE protection
2f6ce58 is described below
commit 2f6ce585a11e9990e898dc9f92bda444b6f6fd07
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Thu Feb 17 21:39:03 2022 +0000
Align with 9.0.x onwards - backport NPE protection
---
java/org/apache/tomcat/util/net/Nio2Endpoint.java | 118 +++++++++++++---------
1 file changed, 68 insertions(+), 50 deletions(-)
diff --git a/java/org/apache/tomcat/util/net/Nio2Endpoint.java b/java/org/apache/tomcat/util/net/Nio2Endpoint.java
index a32f636..e480490 100644
--- a/java/org/apache/tomcat/util/net/Nio2Endpoint.java
+++ b/java/org/apache/tomcat/util/net/Nio2Endpoint.java
@@ -1475,30 +1475,36 @@ public class Nio2Endpoint extends AbstractJsseEndpoint<Nio2Channel,AsynchronousS
@Override
protected void populateRemoteAddr() {
- SocketAddress socketAddress = null;
- try {
- socketAddress = getSocket().getIOChannel().getRemoteAddress();
- } catch (IOException e) {
- // Ignore
- }
- if (socketAddress instanceof InetSocketAddress) {
- remoteAddr = ((InetSocketAddress) socketAddress).getAddress().getHostAddress();
+ AsynchronousSocketChannel sc = getSocket().getIOChannel();
+ if (sc != null) {
+ SocketAddress socketAddress = null;
+ try {
+ socketAddress = sc.getRemoteAddress();
+ } catch (IOException e) {
+ // Ignore
+ }
+ if (socketAddress instanceof InetSocketAddress) {
+ remoteAddr = ((InetSocketAddress) socketAddress).getAddress().getHostAddress();
+ }
}
}
@Override
protected void populateRemoteHost() {
- SocketAddress socketAddress = null;
- try {
- socketAddress = getSocket().getIOChannel().getRemoteAddress();
- } catch (IOException e) {
- log.warn(sm.getString("endpoint.warn.noRemoteHost", getSocket()), e);
- }
- if (socketAddress instanceof InetSocketAddress) {
- remoteHost = ((InetSocketAddress) socketAddress).getAddress().getHostName();
- if (remoteAddr == null) {
- remoteAddr = ((InetSocketAddress) socketAddress).getAddress().getHostAddress();
+ AsynchronousSocketChannel sc = getSocket().getIOChannel();
+ if (sc != null) {
+ SocketAddress socketAddress = null;
+ try {
+ socketAddress = sc.getRemoteAddress();
+ } catch (IOException e) {
+ log.warn(sm.getString("endpoint.warn.noRemoteHost", getSocket()), e);
+ }
+ if (socketAddress instanceof InetSocketAddress) {
+ remoteHost = ((InetSocketAddress) socketAddress).getAddress().getHostName();
+ if (remoteAddr == null) {
+ remoteAddr = ((InetSocketAddress) socketAddress).getAddress().getHostAddress();
+ }
}
}
}
@@ -1506,56 +1512,68 @@ public class Nio2Endpoint extends AbstractJsseEndpoint<Nio2Channel,AsynchronousS
@Override
protected void populateRemotePort() {
- SocketAddress socketAddress = null;
- try {
- socketAddress = getSocket().getIOChannel().getRemoteAddress();
- } catch (IOException e) {
- log.warn(sm.getString("endpoint.warn.noRemotePort", getSocket()), e);
- }
- if (socketAddress instanceof InetSocketAddress) {
- remotePort = ((InetSocketAddress) socketAddress).getPort();
+ AsynchronousSocketChannel sc = getSocket().getIOChannel();
+ if (sc != null) {
+ SocketAddress socketAddress = null;
+ try {
+ socketAddress = sc.getRemoteAddress();
+ } catch (IOException e) {
+ log.warn(sm.getString("endpoint.warn.noRemotePort", getSocket()), e);
+ }
+ if (socketAddress instanceof InetSocketAddress) {
+ remotePort = ((InetSocketAddress) socketAddress).getPort();
+ }
}
}
@Override
protected void populateLocalName() {
- SocketAddress socketAddress = null;
- try {
- socketAddress = getSocket().getIOChannel().getLocalAddress();
- } catch (IOException e) {
- log.warn(sm.getString("endpoint.warn.noLocalName", getSocket()), e);
- }
- if (socketAddress instanceof InetSocketAddress) {
- localName = ((InetSocketAddress) socketAddress).getHostName();
+ AsynchronousSocketChannel sc = getSocket().getIOChannel();
+ if (sc != null) {
+ SocketAddress socketAddress = null;
+ try {
+ socketAddress = sc.getLocalAddress();
+ } catch (IOException e) {
+ log.warn(sm.getString("endpoint.warn.noLocalName", getSocket()), e);
+ }
+ if (socketAddress instanceof InetSocketAddress) {
+ localName = ((InetSocketAddress) socketAddress).getHostName();
+ }
}
}
@Override
protected void populateLocalAddr() {
- SocketAddress socketAddress = null;
- try {
- socketAddress = getSocket().getIOChannel().getLocalAddress();
- } catch (IOException e) {
- log.warn(sm.getString("endpoint.warn.noLocalAddr", getSocket()), e);
- }
- if (socketAddress instanceof InetSocketAddress) {
- localAddr = ((InetSocketAddress) socketAddress).getAddress().getHostAddress();
+ AsynchronousSocketChannel sc = getSocket().getIOChannel();
+ if (sc != null) {
+ SocketAddress socketAddress = null;
+ try {
+ socketAddress = sc.getLocalAddress();
+ } catch (IOException e) {
+ log.warn(sm.getString("endpoint.warn.noLocalAddr", getSocket()), e);
+ }
+ if (socketAddress instanceof InetSocketAddress) {
+ localAddr = ((InetSocketAddress) socketAddress).getAddress().getHostAddress();
+ }
}
}
@Override
protected void populateLocalPort() {
- SocketAddress socketAddress = null;
- try {
- socketAddress = getSocket().getIOChannel().getLocalAddress();
- } catch (IOException e) {
- log.warn(sm.getString("endpoint.warn.noLocalPort", getSocket()), e);
- }
- if (socketAddress instanceof InetSocketAddress) {
- localPort = ((InetSocketAddress) socketAddress).getPort();
+ AsynchronousSocketChannel sc = getSocket().getIOChannel();
+ if (sc != null) {
+ SocketAddress socketAddress = null;
+ try {
+ socketAddress = sc.getLocalAddress();
+ } catch (IOException e) {
+ log.warn(sm.getString("endpoint.warn.noLocalPort", getSocket()), e);
+ }
+ if (socketAddress instanceof InetSocketAddress) {
+ localPort = ((InetSocketAddress) socketAddress).getPort();
+ }
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org