Repository: kylin Updated Branches: refs/heads/2.x-staging cfa97f689 -> 4afd144af
KYLIN-1180 Fix some NPE on Dictionary Signed-off-by: honma <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/9c28bcfc Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/9c28bcfc Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/9c28bcfc Branch: refs/heads/2.x-staging Commit: 9c28bcfcc85facc532d351fe40777548950499de Parents: 225a7d5 Author: lidongsjtu <[email protected]> Authored: Mon Nov 30 10:52:08 2015 +0800 Committer: honma <[email protected]> Committed: Fri Dec 4 16:29:06 2015 +0800 ---------------------------------------------------------------------- .../java/org/apache/kylin/dict/TableColumnValueEnumerator.java | 2 +- .../java/org/apache/kylin/dict/lookup/LookupBytesTable.java | 4 ++++ .../java/org/apache/kylin/dict/lookup/LookupStringTable.java | 3 +++ .../main/java/org/apache/kylin/dict/lookup/LookupTable.java | 6 ++++-- 4 files changed, 12 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/9c28bcfc/core-dictionary/src/main/java/org/apache/kylin/dict/TableColumnValueEnumerator.java ---------------------------------------------------------------------- diff --git a/core-dictionary/src/main/java/org/apache/kylin/dict/TableColumnValueEnumerator.java b/core-dictionary/src/main/java/org/apache/kylin/dict/TableColumnValueEnumerator.java index ab9a6ff..5f9460c 100644 --- a/core-dictionary/src/main/java/org/apache/kylin/dict/TableColumnValueEnumerator.java +++ b/core-dictionary/src/main/java/org/apache/kylin/dict/TableColumnValueEnumerator.java @@ -53,7 +53,7 @@ public class TableColumnValueEnumerator implements IDictionaryValueEnumerator { colStrValue = split[colIndex]; } - colValue = Bytes.toBytes(colStrValue); + colValue = colStrValue == null ? null : Bytes.toBytes(colStrValue); return true; } else { http://git-wip-us.apache.org/repos/asf/kylin/blob/9c28bcfc/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupBytesTable.java ---------------------------------------------------------------------- diff --git a/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupBytesTable.java b/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupBytesTable.java index 081a97e..0758edc 100644 --- a/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupBytesTable.java +++ b/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupBytesTable.java @@ -49,4 +49,8 @@ public class LookupBytesTable extends LookupTable<ByteArray> { return cell.toString(); } + public Class<?> getType() { + return ByteArray.class; + } + } http://git-wip-us.apache.org/repos/asf/kylin/blob/9c28bcfc/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupStringTable.java ---------------------------------------------------------------------- diff --git a/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupStringTable.java b/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupStringTable.java index 2d92d68..ce73feb 100644 --- a/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupStringTable.java +++ b/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupStringTable.java @@ -43,4 +43,7 @@ public class LookupStringTable extends LookupTable<String> { return cell; } + public Class<?> getType() { + return String.class; + } } http://git-wip-us.apache.org/repos/asf/kylin/blob/9c28bcfc/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupTable.java ---------------------------------------------------------------------- diff --git a/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupTable.java b/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupTable.java index 5d43542..eb2b963 100644 --- a/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupTable.java +++ b/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupTable.java @@ -36,7 +36,7 @@ import com.google.common.collect.Sets; /** * An in-memory lookup table, in which each cell is an object of type T. The * table is indexed by specified PK for fast lookup. - * + * * @author yangli9 */ abstract public class LookupTable<T extends Comparable<T>> { @@ -73,7 +73,7 @@ abstract public class LookupTable<T extends Comparable<T>> { @SuppressWarnings("unchecked") private void initRow(String[] cols, int[] keyIndex) { T[] value = convertRow(cols); - T[] keyCols = (T[]) java.lang.reflect.Array.newInstance(value[0].getClass(), keyIndex.length); + T[] keyCols = (T[]) java.lang.reflect.Array.newInstance(getType(), keyIndex.length); for (int i = 0; i < keyCols.length; i++) keyCols[i] = value[keyIndex[i]]; @@ -162,6 +162,8 @@ abstract public class LookupTable<T extends Comparable<T>> { abstract protected String toString(T cell); + abstract public Class<?> getType(); + public void dump() { for (Array<T> key : data.keySet()) { System.out.println(toString(key.data) + " => " + toString(data.get(key)));
