KYLIN-1534 fix bug, pass CI
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/b121b272 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/b121b272 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/b121b272 Branch: refs/heads/1.5.x-HBase1.1.3 Commit: b121b2722a10d0b16357ce6dba94b39a493eba27 Parents: 10203c1 Author: Li Yang <liy...@apache.org> Authored: Thu Mar 31 11:52:44 2016 +0800 Committer: Li Yang <liy...@apache.org> Committed: Thu Mar 31 11:52:59 2016 +0800 ---------------------------------------------------------------------- .../org/apache/kylin/common/KylinConfig.java | 23 ++++++++++++++++++++ .../apache/kylin/common/KylinConfigBase.java | 2 +- .../org/apache/kylin/common/KylinConfigExt.java | 4 ++++ 3 files changed, 28 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/b121b272/core-common/src/main/java/org/apache/kylin/common/KylinConfig.java ---------------------------------------------------------------------- diff --git a/core-common/src/main/java/org/apache/kylin/common/KylinConfig.java b/core-common/src/main/java/org/apache/kylin/common/KylinConfig.java index 0a8de9f..5a583f6 100644 --- a/core-common/src/main/java/org/apache/kylin/common/KylinConfig.java +++ b/core-common/src/main/java/org/apache/kylin/common/KylinConfig.java @@ -276,4 +276,27 @@ public class KylinConfig extends KylinConfigBase { } } + private KylinConfig base() { + if (this instanceof KylinConfigExt) + return ((KylinConfigExt) this).base; + else + return this; + } + + private int superHashCode() { + return super.hashCode(); + } + + @Override + public int hashCode() { + return base().superHashCode(); + } + + @Override + public boolean equals(Object another) { + if (!(another instanceof KylinConfig)) + return false; + else + return this.base() == ((KylinConfig) another).base(); + } } http://git-wip-us.apache.org/repos/asf/kylin/blob/b121b272/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java ---------------------------------------------------------------------- diff --git a/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java b/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java index bdcdd1d..3157a96 100644 --- a/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java +++ b/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java @@ -43,7 +43,7 @@ import com.google.common.collect.Sets; * Subclass can override methods in this class to extend the content of the 'properties', * with some override values for example. */ -public class KylinConfigBase implements Serializable { +abstract public class KylinConfigBase implements Serializable { private static final Logger logger = LoggerFactory.getLogger(KylinConfigBase.class); http://git-wip-us.apache.org/repos/asf/kylin/blob/b121b272/core-common/src/main/java/org/apache/kylin/common/KylinConfigExt.java ---------------------------------------------------------------------- diff --git a/core-common/src/main/java/org/apache/kylin/common/KylinConfigExt.java b/core-common/src/main/java/org/apache/kylin/common/KylinConfigExt.java index 520bc6f..f6e20ff 100644 --- a/core-common/src/main/java/org/apache/kylin/common/KylinConfigExt.java +++ b/core-common/src/main/java/org/apache/kylin/common/KylinConfigExt.java @@ -28,9 +28,13 @@ import java.util.Properties; public class KylinConfigExt extends KylinConfig { final private Map<String, String> overrides; + final KylinConfig base; public KylinConfigExt(KylinConfig base, Map<String, String> overrides) { super(base.getAllProperties()); + if (base.getClass() != KylinConfig.class) + throw new IllegalArgumentException(); + this.base = base; this.overrides = overrides; }