KYLIN-1417 Change to use TreeMap to allow null as value
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/d1a574b8 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/d1a574b8 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/d1a574b8 Branch: refs/heads/2.x-staging Commit: d1a574b80ef35ebdae69718998a2dfcaeafc3cbc Parents: 50aab0b Author: shaofengshi <shaofeng...@apache.org> Authored: Tue Feb 16 10:29:47 2016 +0800 Committer: shaofengshi <shaofeng...@apache.org> Committed: Tue Mar 8 12:21:40 2016 +0800 ---------------------------------------------------------------------- .../apache/kylin/source/kafka/TimedJsonStreamParser.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/d1a574b8/source-kafka/src/main/java/org/apache/kylin/source/kafka/TimedJsonStreamParser.java ---------------------------------------------------------------------- diff --git a/source-kafka/src/main/java/org/apache/kylin/source/kafka/TimedJsonStreamParser.java b/source-kafka/src/main/java/org/apache/kylin/source/kafka/TimedJsonStreamParser.java index 0907623..e3075d5 100644 --- a/source-kafka/src/main/java/org/apache/kylin/source/kafka/TimedJsonStreamParser.java +++ b/source-kafka/src/main/java/org/apache/kylin/source/kafka/TimedJsonStreamParser.java @@ -35,11 +35,7 @@ package org.apache.kylin.source.kafka; import java.io.IOException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import kafka.message.MessageAndOffset; @@ -102,7 +98,9 @@ public final class TimedJsonStreamParser extends StreamingParser { @Override public StreamingMessage parse(MessageAndOffset messageAndOffset) { try { - Map<String, String> root = mapper.readValue(new ByteBufferBackedInputStream(messageAndOffset.message().payload()), mapType); + Map<String, String> message = mapper.readValue(new ByteBufferBackedInputStream(messageAndOffset.message().payload()), mapType); + Map<String, String> root = new TreeMap<String, String>(String.CASE_INSENSITIVE_ORDER); + root.putAll(message); String tsStr = root.get(tsColName); //Preconditions.checkArgument(!StringUtils.isEmpty(tsStr), "Timestamp field " + tsColName + // //" cannot be null, the message offset is " + messageAndOffset.getOffset() + " content is " + new String(messageAndOffset.getRawData()));