HBASE-11627 guard against divide by zero in RegionSplitter logging.

Adds a test for noop rolling splits that fails prior to the addition
of the guard.

Signed-off-by: Andrew Purtell <[email protected]>


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/e9fd2d5c
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/e9fd2d5c
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/e9fd2d5c

Branch: refs/heads/master
Commit: e9fd2d5cae8c9b5045dd813a54a2ac4570317553
Parents: 9936b86
Author: Sean Busbey <[email protected]>
Authored: Thu Aug 14 17:51:06 2014 -0700
Committer: Andrew Purtell <[email protected]>
Committed: Thu Aug 14 17:51:06 2014 -0700

----------------------------------------------------------------------
 .../java/org/apache/hadoop/hbase/util/RegionSplitter.java     | 6 ++++--
 .../java/org/apache/hadoop/hbase/util/TestRegionSplitter.java | 7 +++++++
 2 files changed, 11 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/e9fd2d5c/hbase-server/src/main/java/org/apache/hadoop/hbase/util/RegionSplitter.java
----------------------------------------------------------------------
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/RegionSplitter.java 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/RegionSplitter.java
index 8a2ffaa..f881d29 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/RegionSplitter.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/RegionSplitter.java
@@ -584,8 +584,10 @@ public class RegionSplitter {
       LOG.debug("TOTAL TIME = "
           + org.apache.hadoop.util.StringUtils.formatTime(tDiff));
       LOG.debug("Splits = " + splitCount);
-      LOG.debug("Avg Time / Split = "
-          + org.apache.hadoop.util.StringUtils.formatTime(tDiff / splitCount));
+      if (0 < splitCount) {
+        LOG.debug("Avg Time / Split = "
+            + org.apache.hadoop.util.StringUtils.formatTime(tDiff / 
splitCount));
+      }
 
       splitOut.close();
       if (table != null){

http://git-wip-us.apache.org/repos/asf/hbase/blob/e9fd2d5c/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestRegionSplitter.java
----------------------------------------------------------------------
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestRegionSplitter.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestRegionSplitter.java
index 407be0d..878e109 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestRegionSplitter.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestRegionSplitter.java
@@ -282,6 +282,13 @@ public class TestRegionSplitter {
         verifyBounds(expectedBounds, tableName);
     }
 
+  @Test
+  public void noopRollingSplit() throws Exception {
+    final List<byte[]> expectedBounds = new ArrayList<byte[]>();
+    expectedBounds.add(ArrayUtils.EMPTY_BYTE_ARRAY);
+    rollingSplitAndVerify(TestRegionSplitter.class.getSimpleName(), 
"UniformSplit", expectedBounds);
+  }
+
     private void rollingSplitAndVerify(String tableName, String splitClass,
             List<byte[]> expectedBounds)  throws Exception {
         final Configuration conf = UTIL.getConfiguration();

Reply via email to