Github user ajantha-bhat commented on a diff in the pull request:

    https://github.com/apache/carbondata/pull/2899#discussion_r241322296
  
    --- Diff: store/CSDK/src/CarbonWriter.cpp ---
    @@ -58,6 +58,35 @@ void CarbonWriter::outputPath(char *path) {
         carbonWriterBuilderObject = 
jniEnv->CallObjectMethodA(carbonWriterBuilderObject, methodID, args);
     }
     
    +void CarbonWriter::sortBy(int argc, char **argv) {
    +    if (argc < 0) {
    +        throw std::runtime_error("argc parameter can't be negative.");
    +    }
    +    if (argv == NULL) {
    +        throw std::runtime_error("argv parameter can't be NULL.");
    +    }
    +    checkBuilder();
    +    jclass carbonReaderBuilderClass = 
jniEnv->GetObjectClass(carbonWriterBuilderObject);
    +    jmethodID methodID = jniEnv->GetMethodID(carbonReaderBuilderClass, 
"sortBy",
    +        
"([Ljava/lang/String;)Lorg/apache/carbondata/sdk/file/CarbonWriterBuilder;");
    +    if (methodID == NULL) {
    +        throw std::runtime_error("Can't find the method in java: sortBy");
    +    }
    +    jclass objectArrayClass = jniEnv->FindClass("Ljava/lang/String;");
    +    if (objectArrayClass == NULL) {
    +        throw std::runtime_error("Can't find the class in java: 
java/lang/String");
    +    }
    +    jobjectArray array = jniEnv->NewObjectArray(argc, objectArrayClass, 
NULL);
    +    for (int i = 0; i < argc; ++i) {
    +        jstring value = jniEnv->NewStringUTF(argv[i]);
    +        jniEnv->SetObjectArrayElement(array, i, value);
    +    }
    +
    +    jvalue args[1];
    +    args[0].l = array;
    +    carbonWriterBuilderObject = 
jniEnv->CallObjectMethodA(carbonWriterBuilderObject, methodID, args);
    --- End diff --
    
    can this be modified to 
    
    (void) jniEnv->CallObjectMethodA(carbonWriterBuilderObject, methodID, args);
    
    no need to collect return value from java API as it return type of cpp 
method is void.
    
    check same for all the new void API added


---

Reply via email to