YARN-9257. Distributed Shell client throws a NPE for a non-existent queue. Contributed by Charan Hebri.

This commit is contained in:
Sunil G 2019-02-08 11:22:44 +05:30
parent 2501fcd26b
commit fbc08145cf
2 changed files with 22 additions and 0 deletions

View File

@ -651,6 +651,12 @@ public class Client {
} }
QueueInfo queueInfo = yarnClient.getQueueInfo(this.amQueue); QueueInfo queueInfo = yarnClient.getQueueInfo(this.amQueue);
if (queueInfo == null) {
throw new IllegalArgumentException(String
.format("Queue %s not present in scheduler configuration.",
this.amQueue));
}
LOG.info("Queue info" LOG.info("Queue info"
+ ", queueName=" + queueInfo.getQueueName() + ", queueName=" + queueInfo.getQueueName()
+ ", queueCurrentCapacity=" + queueInfo.getCurrentCapacity() + ", queueCurrentCapacity=" + queueInfo.getCurrentCapacity()

View File

@ -1630,4 +1630,20 @@ public class TestDistributedShell {
client.init(args); client.init(args);
client.run(); client.run();
} }
@Test(expected = IllegalArgumentException.class)
public void testDistributedShellNonExistentQueue() throws Exception {
String[] args = {
"--jar",
APPMASTER_JAR,
"--num_containers",
"1",
"--shell_command",
Shell.WINDOWS ? "dir" : "ls",
"--queue",
"non-existent-queue" };
Client client = new Client(new Configuration(yarnCluster.getConfig()));
client.init(args);
client.run();
}
} }