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;
     }
     

Reply via email to