From fb77cd1fa6af204124bb8e491ab2f840d823d2b1 Mon Sep 17 00:00:00 2001 From: Ashish Singhi Date: Wed, 22 Oct 2014 20:18:33 +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 2790fe2..08018ab 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 @@ -242,7 +242,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 40e69f9..1dab9dd 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; @@ -201,4 +203,11 @@ public class TestCellCounter { FileUtil.fullyDelete(new File(outputPath)); } } + + @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