From 73e6931ed05e25a91ee0854fe2dab7dc9a288746 Mon Sep 17 00:00:00 2001 From: ConfX <114765570+teamconfx@users.noreply.github.com> Date: Sat, 6 Apr 2024 16:08:09 +0800 Subject: [PATCH] HDFS-17449. Fix ill-formed decommission host name and port pair triggers IndexOutOfBound error (#6691). Contributed by ConfX Signed-off-by: Ayush Saxena --- .../java/org/apache/hadoop/hdfs/util/HostsFileWriter.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/util/HostsFileWriter.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/util/HostsFileWriter.java index e171e2bbdc..9dd788d166 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/util/HostsFileWriter.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/util/HostsFileWriter.java @@ -106,6 +106,10 @@ public void initOutOfServiceHosts(List decommissionHostNameAndPorts, for (String hostNameAndPort : decommissionHostNameAndPorts) { DatanodeAdminProperties dn = new DatanodeAdminProperties(); String[] hostAndPort = hostNameAndPort.split(":"); + if (hostAndPort.length != 2) { + throw new IllegalArgumentException("The decommision host name and port format is " + + "invalid. The format should be in :, not " + hostNameAndPort); + } dn.setHostName(hostAndPort[0]); dn.setPort(Integer.parseInt(hostAndPort[1])); dn.setAdminState(AdminStates.DECOMMISSIONED);