From c07bae415893fd742b2362e563992a08d0d610d2 Mon Sep 17 00:00:00 2001 From: Ashish Singhi Date: Tue, 21 Oct 2014 12:30:05 +0530 Subject: [PATCH] HBase-12304 CellCounter will throw AIOBE when output directory is not specified --- .../main/java/org/apache/hadoop/hbase/mapreduce/CellCounter.java | 2 +- .../java/org/apache/hadoop/hbase/mapreduce/TestCellCounter.java | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/CellCounter.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/CellCounter.java index 8bb4111..1ab0c27 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/CellCounter.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/CellCounter.java @@ -241,7 +241,7 @@ public class CellCounter extends Configured implements Tool { @Override public int run(String[] args) throws Exception { String[] otherArgs = new GenericOptionsParser(getConf(), args).getRemainingArgs(); - if (otherArgs.length < 1) { + if (otherArgs.length < 2) { System.err.println("ERROR: Wrong number of parameters: " + args.length); System.err.println("Usage: CellCounter " + "[^[regex pattern] or [Prefix] for row filter]] "); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestCellCounter.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestCellCounter.java index 092a18f..f455e6d 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestCellCounter.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestCellCounter.java @@ -23,6 +23,7 @@ import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileUtil; import org.apache.hadoop.fs.LocalFileSystem; import org.apache.hadoop.fs.Path; +import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HBaseTestingUtility; import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.Table; @@ -32,6 +33,7 @@ import org.apache.hadoop.hbase.util.Bytes; import org.apache.hadoop.hbase.util.LauncherSecurityManager; import org.apache.hadoop.mapreduce.Job; import org.apache.hadoop.util.GenericOptionsParser; +import org.apache.hadoop.util.ToolRunner; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -156,4 +158,11 @@ public class TestCellCounter { System.setSecurityManager(SECURITY_MANAGER); } } + + @Test + public void TestCellCounterWithoutOutputDir() throws Exception { + String[] args = new String[] { "tableName" }; + assertEquals("CellCounter should exit with -1 as output directory is not specified.", -1, + ToolRunner.run(HBaseConfiguration.create(), new CellCounter(), args)); + } } \ No newline at end of file -- 1.9.2.msysgit.0