KYLIN-3211 add Exception message for the illegal IntDimEnc length
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/04b32207 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/04b32207 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/04b32207 Branch: refs/heads/master Commit: 04b3220739713a7d157e6a286fabea5a5036fad4 Parents: 4ade239 Author: Yifei Wu <vaful...@gmail.com> Authored: Mon Jan 29 21:20:08 2018 +0800 Committer: Li Yang <liy...@apache.org> Committed: Sun Feb 4 08:45:40 2018 +0800 ---------------------------------------------------------------------- .../main/java/org/apache/kylin/dimension/IntDimEnc.java | 10 ++++++---- .../java/org/apache/kylin/dimension/IntDimEncTest.java | 5 +++-- 2 files changed, 9 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/04b32207/core-metadata/src/main/java/org/apache/kylin/dimension/IntDimEnc.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/dimension/IntDimEnc.java b/core-metadata/src/main/java/org/apache/kylin/dimension/IntDimEnc.java index 3650200..6ce003b 100644 --- a/core-metadata/src/main/java/org/apache/kylin/dimension/IntDimEnc.java +++ b/core-metadata/src/main/java/org/apache/kylin/dimension/IntDimEnc.java @@ -34,12 +34,13 @@ import org.slf4j.LoggerFactory; * deprecated use IntegerDimEnc instead * @deprecated */ -public class IntDimEnc extends DimensionEncoding implements Serializable{ +public class IntDimEnc extends DimensionEncoding implements Serializable { private static final long serialVersionUID = 1L; private static Logger logger = LoggerFactory.getLogger(IntDimEnc.class); - private static final long[] CAP = { 0, 0xffL, 0xffffL, 0xffffffL, 0xffffffffL, 0xffffffffffL, 0xffffffffffffL, 0xffffffffffffffL, Long.MAX_VALUE }; + private static final long[] CAP = { 0, 0xffL, 0xffffL, 0xffffffL, 0xffffffffL, 0xffffffffffL, 0xffffffffffffL, + 0xffffffffffffffL, Long.MAX_VALUE }; public static final String ENCODING_NAME = "int"; @@ -67,7 +68,7 @@ public class IntDimEnc extends DimensionEncoding implements Serializable{ public IntDimEnc(int len) { if (len <= 0 || len >= CAP.length) - throw new IllegalArgumentException(); + throw new IllegalArgumentException("the length of IntDimEnc is " + len + ", which should be 1-8"); this.fixedLen = len; } @@ -87,7 +88,8 @@ public class IntDimEnc extends DimensionEncoding implements Serializable{ long integer = Long.parseLong(valueStr); if (integer > CAP[fixedLen]) { if (avoidVerbose++ % 10000 == 0) { - logger.warn("Expect at most " + fixedLen + " bytes, but got " + valueStr + ", will truncate, hit times:" + avoidVerbose); + logger.warn("Expect at most " + fixedLen + " bytes, but got " + valueStr + ", will truncate, hit times:" + + avoidVerbose); } } http://git-wip-us.apache.org/repos/asf/kylin/blob/04b32207/core-metadata/src/test/java/org/apache/kylin/dimension/IntDimEncTest.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/test/java/org/apache/kylin/dimension/IntDimEncTest.java b/core-metadata/src/test/java/org/apache/kylin/dimension/IntDimEncTest.java index 0f55b3e..fc4163b 100644 --- a/core-metadata/src/test/java/org/apache/kylin/dimension/IntDimEncTest.java +++ b/core-metadata/src/test/java/org/apache/kylin/dimension/IntDimEncTest.java @@ -31,18 +31,19 @@ import org.junit.Test; public class IntDimEncTest { @Test - public void testConstructor() { + public void testBadConstructor() { try { new IntDimEnc(0); Assert.fail(); } catch (IllegalArgumentException e) { // expect + Assert.assertEquals("the length of IntDimEnc is 0, which should be 1-8", e.getMessage()); } try { new IntDimEnc(9); Assert.fail(); } catch (IllegalArgumentException e) { - // expect + Assert.assertEquals("the length of IntDimEnc is 9, which should be 1-8", e.getMessage()); } new IntDimEnc(8); }