[CARBONDATA-1470] csv data should not show in error log when data column length 
is greater than 100000 characters

Added method to handle TextParsingException and stop the leak of the sensitive 
data in logs

This closes #1349


Project: http://git-wip-us.apache.org/repos/asf/carbondata/repo
Commit: http://git-wip-us.apache.org/repos/asf/carbondata/commit/33ecca9b
Tree: http://git-wip-us.apache.org/repos/asf/carbondata/tree/33ecca9b
Diff: http://git-wip-us.apache.org/repos/asf/carbondata/diff/33ecca9b

Branch: refs/heads/branch-1.2
Commit: 33ecca9b7c256285b2f10a080b1c6bae14fef5a3
Parents: 1551a7c
Author: kapilreja <kapilr...@gmail.com>
Authored: Tue Sep 12 06:32:36 2017 +0000
Committer: Ravindra Pesala <ravi.pes...@gmail.com>
Committed: Tue Sep 12 15:34:31 2017 +0530

----------------------------------------------------------------------
 .../processing/csvload/CSVRecordReaderIterator.java |  8 ++++++++
 .../processing/util/CarbonDataProcessorUtil.java    | 16 ++++++++++++++++
 2 files changed, 24 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/carbondata/blob/33ecca9b/processing/src/main/java/org/apache/carbondata/processing/csvload/CSVRecordReaderIterator.java
----------------------------------------------------------------------
diff --git 
a/processing/src/main/java/org/apache/carbondata/processing/csvload/CSVRecordReaderIterator.java
 
b/processing/src/main/java/org/apache/carbondata/processing/csvload/CSVRecordReaderIterator.java
index 10a036a..efe75ef 100644
--- 
a/processing/src/main/java/org/apache/carbondata/processing/csvload/CSVRecordReaderIterator.java
+++ 
b/processing/src/main/java/org/apache/carbondata/processing/csvload/CSVRecordReaderIterator.java
@@ -19,8 +19,12 @@ package org.apache.carbondata.processing.csvload;
 
 import java.io.IOException;
 
+
 import org.apache.carbondata.common.CarbonIterator;
 import 
org.apache.carbondata.processing.newflow.exception.CarbonDataLoadingException;
+import org.apache.carbondata.processing.util.CarbonDataProcessorUtil;
+
+import com.univocity.parsers.common.TextParsingException;
 
 import org.apache.hadoop.io.NullWritable;
 import org.apache.hadoop.mapreduce.InputSplit;
@@ -62,6 +66,10 @@ public class CSVRecordReaderIterator extends 
CarbonIterator<Object []> {
       }
       return true;
     } catch (Exception e) {
+      if (e instanceof TextParsingException) {
+        throw new CarbonDataLoadingException(
+            CarbonDataProcessorUtil.trimErrorMessage(e.getMessage()));
+      }
       throw new CarbonDataLoadingException(e);
     }
   }

http://git-wip-us.apache.org/repos/asf/carbondata/blob/33ecca9b/processing/src/main/java/org/apache/carbondata/processing/util/CarbonDataProcessorUtil.java
----------------------------------------------------------------------
diff --git 
a/processing/src/main/java/org/apache/carbondata/processing/util/CarbonDataProcessorUtil.java
 
b/processing/src/main/java/org/apache/carbondata/processing/util/CarbonDataProcessorUtil.java
index 45461e3..e91cf44 100644
--- 
a/processing/src/main/java/org/apache/carbondata/processing/util/CarbonDataProcessorUtil.java
+++ 
b/processing/src/main/java/org/apache/carbondata/processing/util/CarbonDataProcessorUtil.java
@@ -610,4 +610,20 @@ public final class CarbonDataProcessorUtil {
     }
     return outArr;
   }
+
+  /**
+   * This method returns String if exception is TextParsingException
+   *
+   * @param input
+   * @return
+   */
+  public static String trimErrorMessage(String input) {
+    String errorMessage = input;
+    if (input != null) {
+      if (input.split("Hint").length > 0) {
+        errorMessage = input.split("Hint")[0];
+      }
+    }
+    return errorMessage;
+  }
 }
\ No newline at end of file

Reply via email to