Repository: kylin
Updated Branches:
  refs/heads/1.x-staging 09a49554d -> 307e13ccf


修复由于行中字段过长导致的bug


Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/307e13cc
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/307e13cc
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/307e13cc

Branch: refs/heads/1.x-staging
Commit: 307e13ccfea507290a1fdd4e72447fac69ecc63b
Parents: 09a4955
Author: 冯宇 <hzfen...@corp.netease.com>
Authored: Fri Oct 30 17:51:09 2015 +0800
Committer: shaofengshi <shaofeng...@apache.org>
Committed: Tue Jan 5 10:55:42 2016 +0800

----------------------------------------------------------------------
 .../java/org/apache/kylin/common/util/BytesSplitter.java     | 8 +++++++-
 .../org/apache/kylin/job/hadoop/cube/BaseCuboidMapper.java   | 2 +-
 2 files changed, 8 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/307e13cc/common/src/main/java/org/apache/kylin/common/util/BytesSplitter.java
----------------------------------------------------------------------
diff --git 
a/common/src/main/java/org/apache/kylin/common/util/BytesSplitter.java 
b/common/src/main/java/org/apache/kylin/common/util/BytesSplitter.java
index 119d12b..ef0d827 100644
--- a/common/src/main/java/org/apache/kylin/common/util/BytesSplitter.java
+++ b/common/src/main/java/org/apache/kylin/common/util/BytesSplitter.java
@@ -64,8 +64,11 @@ public class BytesSplitter {
         for (int i = 0; i < byteLen; i++) {
             if (bytes[i] == delimiter) {
                 SplittedBytes split = this.splitBuffers[this.bufferSize++];
-                split.length = length;
+                if(length > split.value.length) {
+                    length = split.value.length;
+                }
                 System.arraycopy(bytes, offset, split.value, 0, length);
+                split.length = length;
                 offset = i + 1;
                 length = 0;
             } else {
@@ -73,6 +76,9 @@ public class BytesSplitter {
             }
         }
         SplittedBytes split = this.splitBuffers[this.bufferSize++];
+        if(length > split.value.length) {
+            length = split.value.length;
+        }
         System.arraycopy(bytes, offset, split.value, 0, length);
         split.length = length;
 

http://git-wip-us.apache.org/repos/asf/kylin/blob/307e13cc/job/src/main/java/org/apache/kylin/job/hadoop/cube/BaseCuboidMapper.java
----------------------------------------------------------------------
diff --git 
a/job/src/main/java/org/apache/kylin/job/hadoop/cube/BaseCuboidMapper.java 
b/job/src/main/java/org/apache/kylin/job/hadoop/cube/BaseCuboidMapper.java
index 929408a..d06963b 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/BaseCuboidMapper.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/BaseCuboidMapper.java
@@ -228,8 +228,8 @@ public class BaseCuboidMapper<KEYIN> extends 
KylinMapper<KEYIN, Text, Text, Text
 
     private void handleErrorRecord(BytesSplitter bytesSplitter, Exception ex) 
throws IOException {
 
-        System.err.println("Insane record: " + bytesSplitter);
         ex.printStackTrace(System.err);
+        System.err.println("Insane record: " + bytesSplitter);
 
         errorRecordCounter++;
         if (errorRecordCounter > BatchConstants.ERROR_RECORD_THRESHOLD) {

Reply via email to