merge jni
merge jni: done