[01/26] carbondata git commit: [CARBONDATA-3108][CARBONDATA-3044] Fix the error of jvm will crash when CarbonRow use wrong index number in CSDK [Forced Update!]

2018-11-30 Thread ravipesala
Repository: carbondata
Updated Branches:
  refs/heads/branch-1.5 5ab58ec85 -> 920f05749 (forced update)


[CARBONDATA-3108][CARBONDATA-3044] Fix the error of jvm will crash when 
CarbonRow use wrong index number in CSDK

1. fix the error of jvm will crash when CarbonRow use wrong index number in CSDK
   including getString, getVarchar, getArray, getDecimal
2. delete/release the data after running
3. init the variable to NULL

This closes #2929


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

Branch: refs/heads/branch-1.5
Commit: de45e72f2e455f55f7cd1499f500eb369da9dc9a
Parents: f55857c
Author: xubo245 
Authored: Mon Nov 19 22:48:31 2018 +0800
Committer: ravipesala 
Committed: Fri Nov 30 21:55:16 2018 +0530

--
 store/CSDK/src/CarbonReader.cpp |   7 +-
 store/CSDK/src/CarbonReader.h   |   5 +
 store/CSDK/src/CarbonRow.cpp|  60 +++--
 store/CSDK/src/CarbonRow.h  |   6 +
 store/CSDK/src/CarbonWriter.cpp |   3 +
 store/CSDK/test/main.cpp| 124 +++
 .../org/apache/carbondata/sdk/file/RowUtil.java |   7 +-
 7 files changed, 177 insertions(+), 35 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/carbondata/blob/de45e72f/store/CSDK/src/CarbonReader.cpp
--
diff --git a/store/CSDK/src/CarbonReader.cpp b/store/CSDK/src/CarbonReader.cpp
index 8375b73..8ee65d0 100644
--- a/store/CSDK/src/CarbonReader.cpp
+++ b/store/CSDK/src/CarbonReader.cpp
@@ -31,7 +31,7 @@ void CarbonReader::builder(JNIEnv *env, char *path, char 
*tableName) {
 throw std::runtime_error("tableName parameter can't be NULL.");
 }
 jniEnv = env;
-jclass carbonReaderClass = 
env->FindClass("org/apache/carbondata/sdk/file/CarbonReader");
+carbonReaderClass = 
env->FindClass("org/apache/carbondata/sdk/file/CarbonReader");
 if (carbonReaderClass == NULL) {
 throw std::runtime_error("Can't find the class in java: 
org/apache/carbondata/sdk/file/CarbonReader");
 }
@@ -56,7 +56,7 @@ void CarbonReader::builder(JNIEnv *env, char *path) {
 throw std::runtime_error("path parameter can't be NULL.");
 }
 jniEnv = env;
-jclass carbonReaderClass = 
env->FindClass("org/apache/carbondata/sdk/file/CarbonReader");
+carbonReaderClass = 
env->FindClass("org/apache/carbondata/sdk/file/CarbonReader");
 if (carbonReaderClass == NULL) {
 throw std::runtime_error("Can't find the class in java: 
org/apache/carbondata/sdk/file/CarbonReader");
 }
@@ -230,4 +230,7 @@ void CarbonReader::close() {
 if (jniEnv->ExceptionCheck()) {
 throw jniEnv->ExceptionOccurred();
 }
+jniEnv->DeleteLocalRef(carbonReaderBuilderObject);
+jniEnv->DeleteLocalRef(carbonReaderObject);
+jniEnv->DeleteLocalRef(carbonReaderClass);
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/carbondata/blob/de45e72f/store/CSDK/src/CarbonReader.h
--
diff --git a/store/CSDK/src/CarbonReader.h b/store/CSDK/src/CarbonReader.h
index 246e24b..9a1daeb 100644
--- a/store/CSDK/src/CarbonReader.h
+++ b/store/CSDK/src/CarbonReader.h
@@ -46,6 +46,11 @@ private:
 jobject carbonReaderObject = NULL;
 
 /**
+* carbonReader class for reading data
+*/
+jclass carbonReaderClass = NULL;
+
+/**
  * Return true if carbonReaderBuilder Object isn't NULL
  * Throw exception if carbonReaderBuilder Object is NULL
  *

http://git-wip-us.apache.org/repos/asf/carbondata/blob/de45e72f/store/CSDK/src/CarbonRow.cpp
--
diff --git a/store/CSDK/src/CarbonRow.cpp b/store/CSDK/src/CarbonRow.cpp
index f7066ec..45cf8f6 100644
--- a/store/CSDK/src/CarbonRow.cpp
+++ b/store/CSDK/src/CarbonRow.cpp
@@ -87,6 +87,9 @@ CarbonRow::CarbonRow(JNIEnv *env) {
 if (getArrayId == NULL) {
 throw std::runtime_error("Can't find the method in java: getArray");
 }
+if (jniEnv->ExceptionCheck()) {
+throw jniEnv->ExceptionOccurred();
+}
 }
 
 void CarbonRow::setCarbonRow(jobject data) {
@@ -114,7 +117,11 @@ short CarbonRow::getShort(int ordinal) {
 jvalue args[2];
 args[0].l = carbonRow;
 args[1].i = ordinal;
-return jniEnv->CallStaticShortMethodA(rowUtilClass, getShortId, args);
+short result = jniEnv->CallStaticShortMethodA(rowUtilClass, getShortId, 
args);
+if (jniEnv->ExceptionCheck()) {
+throw jniEnv->ExceptionOccurred();
+}
+return result;
 }
 
 

carbondata git commit: [CARBONDATA-3108][CARBONDATA-3044] Fix the error of jvm will crash when CarbonRow use wrong index number in CSDK

2018-11-21 Thread kunalkapoor
Repository: carbondata
Updated Branches:
  refs/heads/master b8d602598 -> 0fa0a96c4


[CARBONDATA-3108][CARBONDATA-3044] Fix the error of jvm will crash when 
CarbonRow use wrong index number in CSDK

1. fix the error of jvm will crash when CarbonRow use wrong index number in CSDK
   including getString, getVarchar, getArray, getDecimal
2. delete/release the data after running
3. init the variable to NULL

This closes #2929


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

Branch: refs/heads/master
Commit: 0fa0a96c4d55e4bba9bdf118fa7c3e37cd4713a7
Parents: b8d6025
Author: xubo245 
Authored: Mon Nov 19 22:48:31 2018 +0800
Committer: kunal642 
Committed: Wed Nov 21 23:04:07 2018 +0530

--
 store/CSDK/src/CarbonReader.cpp |   7 +-
 store/CSDK/src/CarbonReader.h   |   5 +
 store/CSDK/src/CarbonRow.cpp|  60 +++--
 store/CSDK/src/CarbonRow.h  |   6 +
 store/CSDK/src/CarbonWriter.cpp |   3 +
 store/CSDK/test/main.cpp| 124 +++
 .../org/apache/carbondata/sdk/file/RowUtil.java |   7 +-
 7 files changed, 177 insertions(+), 35 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/carbondata/blob/0fa0a96c/store/CSDK/src/CarbonReader.cpp
--
diff --git a/store/CSDK/src/CarbonReader.cpp b/store/CSDK/src/CarbonReader.cpp
index 8375b73..8ee65d0 100644
--- a/store/CSDK/src/CarbonReader.cpp
+++ b/store/CSDK/src/CarbonReader.cpp
@@ -31,7 +31,7 @@ void CarbonReader::builder(JNIEnv *env, char *path, char 
*tableName) {
 throw std::runtime_error("tableName parameter can't be NULL.");
 }
 jniEnv = env;
-jclass carbonReaderClass = 
env->FindClass("org/apache/carbondata/sdk/file/CarbonReader");
+carbonReaderClass = 
env->FindClass("org/apache/carbondata/sdk/file/CarbonReader");
 if (carbonReaderClass == NULL) {
 throw std::runtime_error("Can't find the class in java: 
org/apache/carbondata/sdk/file/CarbonReader");
 }
@@ -56,7 +56,7 @@ void CarbonReader::builder(JNIEnv *env, char *path) {
 throw std::runtime_error("path parameter can't be NULL.");
 }
 jniEnv = env;
-jclass carbonReaderClass = 
env->FindClass("org/apache/carbondata/sdk/file/CarbonReader");
+carbonReaderClass = 
env->FindClass("org/apache/carbondata/sdk/file/CarbonReader");
 if (carbonReaderClass == NULL) {
 throw std::runtime_error("Can't find the class in java: 
org/apache/carbondata/sdk/file/CarbonReader");
 }
@@ -230,4 +230,7 @@ void CarbonReader::close() {
 if (jniEnv->ExceptionCheck()) {
 throw jniEnv->ExceptionOccurred();
 }
+jniEnv->DeleteLocalRef(carbonReaderBuilderObject);
+jniEnv->DeleteLocalRef(carbonReaderObject);
+jniEnv->DeleteLocalRef(carbonReaderClass);
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/carbondata/blob/0fa0a96c/store/CSDK/src/CarbonReader.h
--
diff --git a/store/CSDK/src/CarbonReader.h b/store/CSDK/src/CarbonReader.h
index 246e24b..9a1daeb 100644
--- a/store/CSDK/src/CarbonReader.h
+++ b/store/CSDK/src/CarbonReader.h
@@ -46,6 +46,11 @@ private:
 jobject carbonReaderObject = NULL;
 
 /**
+* carbonReader class for reading data
+*/
+jclass carbonReaderClass = NULL;
+
+/**
  * Return true if carbonReaderBuilder Object isn't NULL
  * Throw exception if carbonReaderBuilder Object is NULL
  *

http://git-wip-us.apache.org/repos/asf/carbondata/blob/0fa0a96c/store/CSDK/src/CarbonRow.cpp
--
diff --git a/store/CSDK/src/CarbonRow.cpp b/store/CSDK/src/CarbonRow.cpp
index f7066ec..45cf8f6 100644
--- a/store/CSDK/src/CarbonRow.cpp
+++ b/store/CSDK/src/CarbonRow.cpp
@@ -87,6 +87,9 @@ CarbonRow::CarbonRow(JNIEnv *env) {
 if (getArrayId == NULL) {
 throw std::runtime_error("Can't find the method in java: getArray");
 }
+if (jniEnv->ExceptionCheck()) {
+throw jniEnv->ExceptionOccurred();
+}
 }
 
 void CarbonRow::setCarbonRow(jobject data) {
@@ -114,7 +117,11 @@ short CarbonRow::getShort(int ordinal) {
 jvalue args[2];
 args[0].l = carbonRow;
 args[1].i = ordinal;
-return jniEnv->CallStaticShortMethodA(rowUtilClass, getShortId, args);
+short result = jniEnv->CallStaticShortMethodA(rowUtilClass, getShortId, 
args);
+if (jniEnv->ExceptionCheck()) {
+throw jniEnv->ExceptionOccurred();
+}
+return result;
 }
 
 int CarbonRow::getInt(int