diff --git a/coreapi/linphonecore_jni.cc b/coreapi/linphonecore_jni.cc index 76cbbad5c..eb026bf6d 100644 --- a/coreapi/linphonecore_jni.cc +++ b/coreapi/linphonecore_jni.cc @@ -2888,11 +2888,13 @@ extern "C" jbyteArray Java_org_linphone_core_LinphoneChatMessageImpl_getText(JNI ,jobject thiz ,jlong ptr) { const char *message = linphone_chat_message_get_text((LinphoneChatMessage*)ptr); - size_t length = strlen(message); - jbyteArray array = env->NewByteArray(length); - env->SetByteArrayRegion(array, 0, length, (const jbyte*)message); - - return array; + if (message){ + size_t length = strlen(message); + jbyteArray array = env->NewByteArray(length); + env->SetByteArrayRegion(array, 0, length, (const jbyte*)message); + return array; + } + return NULL; } extern "C" jint Java_org_linphone_core_LinphoneChatMessageImpl_getReason(JNIEnv* env diff --git a/java/impl/org/linphone/core/LinphoneChatMessageImpl.java b/java/impl/org/linphone/core/LinphoneChatMessageImpl.java index 6d6009c92..59a1dc509 100644 --- a/java/impl/org/linphone/core/LinphoneChatMessageImpl.java +++ b/java/impl/org/linphone/core/LinphoneChatMessageImpl.java @@ -27,8 +27,10 @@ public class LinphoneChatMessageImpl implements LinphoneChatMessage { @Override public String getText() { + byte rawText[]; try { - return new String(getText(nativePtr), "UTF-8"); + rawText=getText(nativePtr); + if (rawText!=null) return new String(rawText, "UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); }