Skip to content

Commit d7a462f

Browse files
authored
[YARN-11776] Handle NPE in the RMDelegationTokenIdentifier if localServiceAddress is null (#7431) Contributed by Abhey Rana.
Reviewed-by: Viraj Jasani <vjasani@apache.org> Signed-off-by: Shilun Fan <slfan1989@apache.org>
1 parent f0430f2 commit d7a462f

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/security/client/RMDelegationTokenIdentifier.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
import java.io.IOException;
2323
import java.net.InetSocketAddress;
24+
import java.net.InetAddress;
2425

2526
import org.apache.hadoop.classification.InterfaceAudience.Private;
2627
import org.apache.hadoop.classification.InterfaceAudience.Public;
@@ -139,9 +140,10 @@ private static ApplicationClientProtocol getRmClient(Token<?> token,
139140
String[] services = token.getService().toString().split(",");
140141
for (String service : services) {
141142
InetSocketAddress addr = NetUtils.createSocketAddr(service);
142-
if (localSecretManager != null) {
143+
if (localSecretManager != null && localServiceAddress != null) {
143144
// return null if it's our token
144-
if (localServiceAddress.getAddress().isAnyLocalAddress()) {
145+
InetAddress localServiceAddr = localServiceAddress.getAddress();
146+
if (localServiceAddr != null && localServiceAddr.isAnyLocalAddress()) {
145147
if (NetUtils.isLocalAddress(addr.getAddress()) &&
146148
addr.getPort() == localServiceAddress.getPort()) {
147149
return null;

0 commit comments

Comments
 (0)