From b25a37c3229e1a66699d649f6caf80ffc71db5b8 Mon Sep 17 00:00:00 2001 From: Wang Yuxuan <601377065@qq.com> Date: Mon, 11 Nov 2019 13:18:38 +0800 Subject: [PATCH] HDFS-14962. RBF: ConnectionPool#newConnection() error log wrong protocol class (#1699). Contributed by Yuxuan Wang. --- .../hdfs/server/federation/router/ConnectionPool.java | 2 +- .../federation/router/TestConnectionManager.java | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/ConnectionPool.java b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/ConnectionPool.java index a6248146f3..b84848089a 100644 --- a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/ConnectionPool.java +++ b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/ConnectionPool.java @@ -374,7 +374,7 @@ public class ConnectionPool { throws IOException { if (!PROTO_MAP.containsKey(proto)) { String msg = "Unsupported protocol for connection to NameNode: " - + ((proto != null) ? proto.getClass().getName() : "null"); + + ((proto != null) ? proto.getName() : "null"); LOG.error(msg); throw new IllegalStateException(msg); } diff --git a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestConnectionManager.java b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestConnectionManager.java index a06dd6a10f..dffd3d8d12 100644 --- a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestConnectionManager.java +++ b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestConnectionManager.java @@ -23,6 +23,7 @@ import org.apache.hadoop.hdfs.server.protocol.NamenodeProtocol; import org.apache.hadoop.net.NetUtils; import org.apache.hadoop.security.UserGroupInformation; import org.apache.hadoop.test.GenericTestUtils; +import org.apache.hadoop.test.LambdaTestUtils; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -301,4 +302,13 @@ public class TestConnectionManager { tmpConnManager.close(); } + + @Test + public void testUnsupportedProtoExceptionMsg() throws Exception { + LambdaTestUtils.intercept(IllegalStateException.class, + "Unsupported protocol for connection to NameNode: " + + TestConnectionManager.class.getName(), + () -> ConnectionPool.newConnection(conf, TEST_NN_ADDRESS, TEST_USER1, + TestConnectionManager.class)); + } }