From d3fa3b5de29770e8d71055802d0da4aa0e5f1f5c Mon Sep 17 00:00:00 2001 From: QilinCao Date: Mon, 19 Jun 2017 17:38:25 +0800 Subject: [PATCH] HBASE-18119 Improve HFile readability --- .../org/apache/hadoop/hbase/io/hfile/HFile.java | 3 +-- .../apache/hadoop/hbase/io/hfile/TestHFile.java | 24 ++++++++++++++++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFile.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFile.java index 0887ee8..4327ee9 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFile.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFile.java @@ -921,10 +921,9 @@ public class HFile { } } - public static void checkHFileVersion(final Configuration c) { int version = c.getInt(FORMAT_VERSION_KEY, MAX_FORMAT_VERSION); - if (version < MAX_FORMAT_VERSION || version > MAX_FORMAT_VERSION) { + if (version != MAX_FORMAT_VERSION) { throw new IllegalArgumentException("The setting for " + FORMAT_VERSION_KEY + " (in your hbase-*.xml files) is " + version + " which does not match " + MAX_FORMAT_VERSION + diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestHFile.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestHFile.java index d209430..33ca857 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestHFile.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestHFile.java @@ -168,6 +168,30 @@ public class TestHFile { } /** + * Test check hfile version + */ + @Test + public void testCheckHFileVersionForCorrectConfiged(){ + Configuration conf = TEST_UTIL.getConfiguration(); + HFile.checkHFileVersion(conf); + assertTrue(String.valueOf(HFile.MAX_FORMAT_VERSION).equals(conf.get(HFile.FORMAT_VERSION_KEY))); + } + + @Test + public void testCheckHFileVersionForWrongConfiged() { + Configuration conf = TEST_UTIL.getConfiguration(); + int version = conf.getInt(HFile.FORMAT_VERSION_KEY, HFile.MAX_FORMAT_VERSION); + conf.setInt(HFile.FORMAT_VERSION_KEY, HFile.MIN_FORMAT_VERSION); + try { + HFile.checkHFileVersion(conf); + fail(); + } catch (IllegalArgumentException e) { + conf.setInt(HFile.FORMAT_VERSION_KEY, version); + assertTrue(String.valueOf(version).equals(conf.get(HFile.FORMAT_VERSION_KEY))); + } + } + + /** * Create 0-length hfile and show that it fails */ @Test -- 1.9.1