[ https://issues.apache.org/jira/browse/HDFS-3482?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13406239#comment-13406239 ]
Uma Maheswara Rao G commented on HDFS-3482: ------------------------------------------- Madhu, Thanks a lot for the patch. A few comments: - {code} try { + Balancer.Cli.parse(parameters); + fail(reason); + } catch (Exception e) { + assertTrue(e instanceof IllegalArgumentException); + } {code} Please handle specific exception instead of handling genric one and checking for instanceOf. - {code} try { + Balancer.Cli.parse(parameters); + fail(reason); + } catch (Exception e) { + assertTrue(e instanceof IllegalArgumentException); + } {code} same as above - How about adding below part before the if statements? {code} Preconditions.checkArgument(args.length >= 2, "args = " + Arrays.toString(args)); {code} - {code} - return new Parameters(policy, threshold); - } + } {code} seems like wrong format here? - {code} /** + * Test parse method in Balancer#Cli class with wrong number of params + */ {code} format the header comment correctly. and also need not have empty line between header comment and @Test annotation. - args.length>= 2 ----> args.length >= 2 please note here, there should be one space before operator. > hdfs balancer throws ArrayIndexOutOfBoundsException if option is specified > without arguments > -------------------------------------------------------------------------------------------- > > Key: HDFS-3482 > URL: https://issues.apache.org/jira/browse/HDFS-3482 > Project: Hadoop HDFS > Issue Type: Bug > Components: balancer > Affects Versions: 2.0.0-alpha > Reporter: Stephen Chu > Assignee: madhukara phatak > Priority: Minor > Labels: newbie > Attachments: HDFS-3482-1.patch, HDFS-3482-2.patch, HDFS-3482.patch > > > When running the hdfs balancer with an option but no argument, we run into an > ArrayIndexOutOfBoundsException. It's preferable to print the usage. > {noformat} > bash-3.2$ hdfs balancer -threshold > Usage: java Balancer > [-policy <policy>] the balancing policy: datanode or blockpool > [-threshold <threshold>] Percentage of disk capacity > Balancing took 261.0 milliseconds > 12/05/31 09:38:46 ERROR balancer.Balancer: Exiting balancer due an exception > java.lang.ArrayIndexOutOfBoundsException: 1 > at > org.apache.hadoop.hdfs.server.balancer.Balancer$Cli.parse(Balancer.java:1505) > at > org.apache.hadoop.hdfs.server.balancer.Balancer$Cli.run(Balancer.java:1482) > at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) > at > org.apache.hadoop.hdfs.server.balancer.Balancer.main(Balancer.java:1555) > bash-3.2$ hdfs balancer -policy > Usage: java Balancer > [-policy <policy>] the balancing policy: datanode or blockpool > [-threshold <threshold>] Percentage of disk capacity > Balancing took 261.0 milliseconds > 12/05/31 09:39:03 ERROR balancer.Balancer: Exiting balancer due an exception > java.lang.ArrayIndexOutOfBoundsException: 1 > at > org.apache.hadoop.hdfs.server.balancer.Balancer$Cli.parse(Balancer.java:1520) > at > org.apache.hadoop.hdfs.server.balancer.Balancer$Cli.run(Balancer.java:1482) > at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) > at > org.apache.hadoop.hdfs.server.balancer.Balancer.main(Balancer.java:1555) > {noformat} -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira