Github user ajantha-bhat commented on a diff in the pull request:
https://github.com/apache/carbondata/pull/2792#discussion_r228130454
--- Diff: store/CSDK/src/CarbonReader.cpp ---
@@ -79,21 +78,19 @@ jobject CarbonReader::build() {
jmethodID buildID = jniEnv->GetMethodID(carbonReaderBuilderClass,
"build",
"()Lorg/apache/carbondata/sdk/file/CarbonReader;");
carbonReaderObject =
jniEnv->CallObjectMethod(carbonReaderBuilderObject, buildID);
+ jclass carbonReader = jniEnv->GetObjectClass(carbonReaderObject);
+ hasNextID = jniEnv->GetMethodID(carbonReader, "hasNext", "()Z");
+ readNextRowID = jniEnv->GetMethodID(carbonReader, "readNextRow",
+ "()Ljava/lang/Object;");
return carbonReaderObject;
}
jboolean CarbonReader::hasNext() {
- jclass carbonReader = jniEnv->GetObjectClass(carbonReaderObject);
- jmethodID hasNextID = jniEnv->GetMethodID(carbonReader, "hasNext",
"()Z");
- unsigned char hasNext = jniEnv->CallBooleanMethod(carbonReaderObject,
hasNextID);
- return hasNext;
+ return jniEnv->CallBooleanMethod(carbonReaderObject, hasNextID);
}
-jobjectArray CarbonReader::readNextRow() {
- jclass carbonReader = jniEnv->GetObjectClass(carbonReaderObject);
- jmethodID readNextRow2ID = jniEnv->GetMethodID(carbonReader,
"readNextStringRow", "()[Ljava/lang/Object;");
- jobjectArray row = (jobjectArray)
jniEnv->CallObjectMethod(carbonReaderObject, readNextRow2ID);
- return row;
+jobject CarbonReader::readNextRow() {
+ return (jobject) jniEnv->CallObjectMethod(carbonReaderObject,
readNextRowID);
}
jboolean CarbonReader::close() {
--- End diff --
call CallObjectMethod() instead of boolean as return of close is always
void(), update header also
---