@@ -694,7 +694,8 @@ static jobject PopulateLinkBuilder(JNIEnv* jni_env,
694694 link_builder =
695695 SetBuilderUri (jni_env, link_builder, components.link ,
696696 dlink_builder::GetMethodId (dlink_builder::kSetLink ));
697- if (util::GetExceptionMessage (jni_env, error_out)) {
697+ *error_out = util::GetAndClearExceptionMessage (jni_env);
698+ if (error_out->size ()) {
698699 // setLink() threw an exception.
699700 jni_env->DeleteLocalRef (link_builder);
700701 return nullptr ;
@@ -708,7 +709,8 @@ static jobject PopulateLinkBuilder(JNIEnv* jni_env,
708709 link_builder = SetBuilderString (
709710 jni_env, link_builder, domain.c_str (),
710711 dlink_builder::GetMethodId (dlink_builder::kSetDomainUriPrefix ));
711- if (util::GetExceptionMessage (jni_env, error_out)) {
712+ *error_out = util::GetAndClearExceptionMessage (jni_env);
713+ if (error_out->size ()) {
712714 // setDomainUriPrefix() threw an exception.
713715 jni_env->DeleteLocalRef (link_builder);
714716 return nullptr ;
@@ -787,7 +789,8 @@ static jobject PopulateLinkBuilder(JNIEnv* jni_env, const char* long_link,
787789 jobject link_builder = jni_env->CallObjectMethod (
788790 g_dynamic_links_class_instance,
789791 dynamic_links::GetMethodId (dynamic_links::kCreateDynamicLink ));
790- if (util::GetExceptionMessage (jni_env, error_out)) {
792+ *error_out = util::GetAndClearExceptionMessage (jni_env);
793+ if (error_out->size ()) {
791794 jni_env->DeleteLocalRef (link_builder);
792795 return nullptr ;
793796 }
@@ -844,15 +847,17 @@ GeneratedDynamicLink GetLongLink(const DynamicLinkComponents& components) {
844847 jobject dlink_local = jni_env->CallObjectMethod (
845848 link_builder,
846849 dlink_builder::GetMethodId (dlink_builder::kBuildDynamicLink ));
847- if (util::GetExceptionMessage (jni_env, &gen_link.error )) {
850+ gen_link.error = util::GetAndClearExceptionMessage (jni_env);
851+ if (gen_link.error .size ()) {
848852 jni_env->DeleteLocalRef (dlink_local);
849853 jni_env->DeleteLocalRef (link_builder);
850854 return gen_link;
851855 }
852856
853857 jobject uri_local = jni_env->CallObjectMethod (
854858 dlink_local, dlink::GetMethodId (dlink::kGetUri ));
855- if (util::GetExceptionMessage (jni_env, &gen_link.error )) {
859+ gen_link.error = util::GetAndClearExceptionMessage (jni_env);
860+ if (gen_link.error .size ()) {
856861 jni_env->DeleteLocalRef (uri_local);
857862 jni_env->DeleteLocalRef (dlink_local);
858863 jni_env->DeleteLocalRef (link_builder);
@@ -948,8 +953,8 @@ static Future<GeneratedDynamicLink> HandleShortLinkTask(
948953 dlink_builder::GetMethodId (dlink_builder::kBuildShortDynamicLink ));
949954 }
950955
951- std::string exception_message;
952- if (util::GetExceptionMessage (jni_env, & exception_message)) {
956+ std::string exception_message = util::GetAndClearExceptionMessage (jni_env) ;
957+ if (exception_message. size ( )) {
953958 GeneratedDynamicLink gen_link;
954959 gen_link.error = exception_message;
955960 LogError (" Couldn't build short link: %s" , exception_message.c_str ());
0 commit comments