X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=src%2Fmain%2Fjni%2Fbindings.c.body;h=5dd76f4414f55b2eb2728b4215062653c137631a;hb=e242b490d3bb29116fd392c76c826186d356cccd;hp=95ae6d52afd2d554cf56da72af27a197751d4ec8;hpb=ebbb6f57d6b5072730fd50ef3a011db1d6577ad9;p=ldk-java diff --git a/src/main/jni/bindings.c.body b/src/main/jni/bindings.c.body index 95ae6d52..5dd76f44 100644 --- a/src/main/jni/bindings.c.body +++ b/src/main/jni/bindings.c.body @@ -1,3 +1,6 @@ +#include +// On OSX jlong (ie long long) is not equivalent to int64_t, so we override here +#define int64_t jlong #include "org_ldk_impl_bindings.h" #include #include @@ -128,7 +131,7 @@ static inline LDKStr java_to_owned_str(JNIEnv *env, jstring str) { } JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_get_1lib_1version_1string(JNIEnv *env, jclass _c) { - return str_ref_to_java(env, "v0.0.98.1", strlen("v0.0.98.1")); + return str_ref_to_java(env, "v0.0.98.4", strlen("v0.0.98.4")); } JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_get_1ldk_1c_1bindings_1version(JNIEnv *env, jclass _c) { return str_ref_to_java(env, check_get_ldk_bindings_version(), strlen(check_get_ldk_bindings_version())); @@ -2134,6 +2137,10 @@ LDKPublicKey get_per_commitment_point_LDKBaseSign_jcall(const void* this_arg, ui jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); int8_tArray ret = (*env)->CallObjectMethod(env, obj, j_calls->get_per_commitment_point_meth, idx); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } LDKPublicKey ret_ref; CHECK((*env)->GetArrayLength(env, ret) == 33); (*env)->GetByteArrayRegion(env, ret, 0, 33, ret_ref.compressed_form); @@ -2154,6 +2161,10 @@ LDKThirtyTwoBytes release_commitment_secret_LDKBaseSign_jcall(const void* this_a jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); int8_tArray ret = (*env)->CallObjectMethod(env, obj, j_calls->release_commitment_secret_meth, idx); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } LDKThirtyTwoBytes ret_ref; CHECK((*env)->GetArrayLength(env, ret) == 32); (*env)->GetByteArrayRegion(env, ret, 0, 32, ret_ref.data); @@ -2174,6 +2185,10 @@ LDKThirtyTwoBytes channel_keys_id_LDKBaseSign_jcall(const void* this_arg) { jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); int8_tArray ret = (*env)->CallObjectMethod(env, obj, j_calls->channel_keys_id_meth); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } LDKThirtyTwoBytes ret_ref; CHECK((*env)->GetArrayLength(env, ret) == 32); (*env)->GetByteArrayRegion(env, ret, 0, 32, ret_ref.data); @@ -2202,6 +2217,10 @@ LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ sign_counterparty_commitment_L jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ* ret = (LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ*)(*env)->CallLongMethod(env, obj, j_calls->sign_counterparty_commitment_meth, commitment_tx_ref); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ ret_conv = *(LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ*)(((uint64_t)ret) & ~1); ret_conv = CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ_clone((LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ*)(((uint64_t)ret) & ~1)); if (get_jenv_res == JNI_EDETACHED) { @@ -2229,6 +2248,10 @@ LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ sign_holder_commitment_and_htl jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ* ret = (LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ*)(*env)->CallLongMethod(env, obj, j_calls->sign_holder_commitment_and_htlcs_meth, commitment_tx_ref); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ ret_conv = *(LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ*)(((uint64_t)ret) & ~1); ret_conv = CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ_clone((LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ*)(((uint64_t)ret) & ~1)); if (get_jenv_res == JNI_EDETACHED) { @@ -2254,6 +2277,10 @@ LDKCResult_SignatureNoneZ sign_justice_revoked_output_LDKBaseSign_jcall(const vo jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); LDKCResult_SignatureNoneZ* ret = (LDKCResult_SignatureNoneZ*)(*env)->CallLongMethod(env, obj, j_calls->sign_justice_revoked_output_meth, justice_tx_arr, input, amount, per_commitment_key_arr); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } LDKCResult_SignatureNoneZ ret_conv = *(LDKCResult_SignatureNoneZ*)(((uint64_t)ret) & ~1); ret_conv = CResult_SignatureNoneZ_clone((LDKCResult_SignatureNoneZ*)(((uint64_t)ret) & ~1)); if (get_jenv_res == JNI_EDETACHED) { @@ -2287,6 +2314,10 @@ LDKCResult_SignatureNoneZ sign_justice_revoked_htlc_LDKBaseSign_jcall(const void jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); LDKCResult_SignatureNoneZ* ret = (LDKCResult_SignatureNoneZ*)(*env)->CallLongMethod(env, obj, j_calls->sign_justice_revoked_htlc_meth, justice_tx_arr, input, amount, per_commitment_key_arr, htlc_ref); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } LDKCResult_SignatureNoneZ ret_conv = *(LDKCResult_SignatureNoneZ*)(((uint64_t)ret) & ~1); ret_conv = CResult_SignatureNoneZ_clone((LDKCResult_SignatureNoneZ*)(((uint64_t)ret) & ~1)); if (get_jenv_res == JNI_EDETACHED) { @@ -2320,6 +2351,10 @@ LDKCResult_SignatureNoneZ sign_counterparty_htlc_transaction_LDKBaseSign_jcall(c jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); LDKCResult_SignatureNoneZ* ret = (LDKCResult_SignatureNoneZ*)(*env)->CallLongMethod(env, obj, j_calls->sign_counterparty_htlc_transaction_meth, htlc_tx_arr, input, amount, per_commitment_point_arr, htlc_ref); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } LDKCResult_SignatureNoneZ ret_conv = *(LDKCResult_SignatureNoneZ*)(((uint64_t)ret) & ~1); ret_conv = CResult_SignatureNoneZ_clone((LDKCResult_SignatureNoneZ*)(((uint64_t)ret) & ~1)); if (get_jenv_res == JNI_EDETACHED) { @@ -2343,6 +2378,10 @@ LDKCResult_SignatureNoneZ sign_closing_transaction_LDKBaseSign_jcall(const void* jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); LDKCResult_SignatureNoneZ* ret = (LDKCResult_SignatureNoneZ*)(*env)->CallLongMethod(env, obj, j_calls->sign_closing_transaction_meth, closing_tx_arr); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } LDKCResult_SignatureNoneZ ret_conv = *(LDKCResult_SignatureNoneZ*)(((uint64_t)ret) & ~1); ret_conv = CResult_SignatureNoneZ_clone((LDKCResult_SignatureNoneZ*)(((uint64_t)ret) & ~1)); if (get_jenv_res == JNI_EDETACHED) { @@ -2370,6 +2409,10 @@ LDKCResult_SignatureNoneZ sign_channel_announcement_LDKBaseSign_jcall(const void jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); LDKCResult_SignatureNoneZ* ret = (LDKCResult_SignatureNoneZ*)(*env)->CallLongMethod(env, obj, j_calls->sign_channel_announcement_meth, msg_ref); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } LDKCResult_SignatureNoneZ ret_conv = *(LDKCResult_SignatureNoneZ*)(((uint64_t)ret) & ~1); ret_conv = CResult_SignatureNoneZ_clone((LDKCResult_SignatureNoneZ*)(((uint64_t)ret) & ~1)); if (get_jenv_res == JNI_EDETACHED) { @@ -2397,6 +2440,10 @@ void ready_channel_LDKBaseSign_jcall(void* this_arg, const LDKChannelTransaction jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); (*env)->CallVoidMethod(env, obj, j_calls->ready_channel_meth, channel_parameters_ref); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } if (get_jenv_res == JNI_EDETACHED) { DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } @@ -2642,6 +2689,10 @@ LDKCVec_u8Z write_LDKSign_jcall(const void* this_arg) { jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); int8_tArray ret = (*env)->CallObjectMethod(env, obj, j_calls->write_meth); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } LDKCVec_u8Z ret_ref; ret_ref.datalen = (*env)->GetArrayLength(env, ret); ret_ref.data = MALLOC(ret_ref.datalen, "LDKCVec_u8Z Bytes"); @@ -3308,6 +3359,10 @@ LDKCResult_NoneChannelMonitorUpdateErrZ watch_channel_LDKWatch_jcall(const void* jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); LDKCResult_NoneChannelMonitorUpdateErrZ* ret = (LDKCResult_NoneChannelMonitorUpdateErrZ*)(*env)->CallLongMethod(env, obj, j_calls->watch_channel_meth, funding_txo_ref, monitor_ref); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } LDKCResult_NoneChannelMonitorUpdateErrZ ret_conv = *(LDKCResult_NoneChannelMonitorUpdateErrZ*)(((uint64_t)ret) & ~1); ret_conv = CResult_NoneChannelMonitorUpdateErrZ_clone((LDKCResult_NoneChannelMonitorUpdateErrZ*)(((uint64_t)ret) & ~1)); if (get_jenv_res == JNI_EDETACHED) { @@ -3341,6 +3396,10 @@ LDKCResult_NoneChannelMonitorUpdateErrZ update_channel_LDKWatch_jcall(const void jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); LDKCResult_NoneChannelMonitorUpdateErrZ* ret = (LDKCResult_NoneChannelMonitorUpdateErrZ*)(*env)->CallLongMethod(env, obj, j_calls->update_channel_meth, funding_txo_ref, update_ref); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } LDKCResult_NoneChannelMonitorUpdateErrZ ret_conv = *(LDKCResult_NoneChannelMonitorUpdateErrZ*)(((uint64_t)ret) & ~1); ret_conv = CResult_NoneChannelMonitorUpdateErrZ_clone((LDKCResult_NoneChannelMonitorUpdateErrZ*)(((uint64_t)ret) & ~1)); if (get_jenv_res == JNI_EDETACHED) { @@ -3360,6 +3419,10 @@ LDKCVec_MonitorEventZ release_pending_monitor_events_LDKWatch_jcall(const void* jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); int64_tArray ret = (*env)->CallObjectMethod(env, obj, j_calls->release_pending_monitor_events_meth); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } LDKCVec_MonitorEventZ ret_constr; ret_constr.datalen = (*env)->GetArrayLength(env, ret); if (ret_constr.datalen > 0) @@ -3497,6 +3560,10 @@ void broadcast_transaction_LDKBroadcasterInterface_jcall(const void* this_arg, L jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); (*env)->CallVoidMethod(env, obj, j_calls->broadcast_transaction_meth, tx_arr); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } if (get_jenv_res == JNI_EDETACHED) { DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } @@ -3579,6 +3646,10 @@ LDKSecretKey get_node_secret_LDKKeysInterface_jcall(const void* this_arg) { jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); int8_tArray ret = (*env)->CallObjectMethod(env, obj, j_calls->get_node_secret_meth); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } LDKSecretKey ret_ref; CHECK((*env)->GetArrayLength(env, ret) == 32); (*env)->GetByteArrayRegion(env, ret, 0, 32, ret_ref.bytes); @@ -3599,6 +3670,10 @@ LDKCVec_u8Z get_destination_script_LDKKeysInterface_jcall(const void* this_arg) jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); int8_tArray ret = (*env)->CallObjectMethod(env, obj, j_calls->get_destination_script_meth); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } LDKCVec_u8Z ret_ref; ret_ref.datalen = (*env)->GetArrayLength(env, ret); ret_ref.data = MALLOC(ret_ref.datalen, "LDKCVec_u8Z Bytes"); @@ -3620,6 +3695,10 @@ LDKPublicKey get_shutdown_pubkey_LDKKeysInterface_jcall(const void* this_arg) { jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); int8_tArray ret = (*env)->CallObjectMethod(env, obj, j_calls->get_shutdown_pubkey_meth); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } LDKPublicKey ret_ref; CHECK((*env)->GetArrayLength(env, ret) == 33); (*env)->GetByteArrayRegion(env, ret, 0, 33, ret_ref.compressed_form); @@ -3640,6 +3719,10 @@ LDKSign get_channel_signer_LDKKeysInterface_jcall(const void* this_arg, bool inb jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); LDKSign* ret = (LDKSign*)(*env)->CallLongMethod(env, obj, j_calls->get_channel_signer_meth, inbound, channel_value_satoshis); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } LDKSign ret_conv = *(LDKSign*)(((uint64_t)ret) & ~1); ret_conv = Sign_clone(ret); if (get_jenv_res == JNI_EDETACHED) { @@ -3659,6 +3742,10 @@ LDKThirtyTwoBytes get_secure_random_bytes_LDKKeysInterface_jcall(const void* thi jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); int8_tArray ret = (*env)->CallObjectMethod(env, obj, j_calls->get_secure_random_bytes_meth); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } LDKThirtyTwoBytes ret_ref; CHECK((*env)->GetArrayLength(env, ret) == 32); (*env)->GetByteArrayRegion(env, ret, 0, 32, ret_ref.data); @@ -3682,6 +3769,10 @@ LDKCResult_SignDecodeErrorZ read_chan_signer_LDKKeysInterface_jcall(const void* jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); LDKCResult_SignDecodeErrorZ* ret = (LDKCResult_SignDecodeErrorZ*)(*env)->CallLongMethod(env, obj, j_calls->read_chan_signer_meth, reader_arr); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } LDKCResult_SignDecodeErrorZ ret_conv = *(LDKCResult_SignDecodeErrorZ*)(((uint64_t)ret) & ~1); ret_conv = CResult_SignDecodeErrorZ_clone((LDKCResult_SignDecodeErrorZ*)(((uint64_t)ret) & ~1)); if (get_jenv_res == JNI_EDETACHED) { @@ -3705,6 +3796,10 @@ LDKCResult_RecoverableSignatureNoneZ sign_invoice_LDKKeysInterface_jcall(const v jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); LDKCResult_RecoverableSignatureNoneZ* ret = (LDKCResult_RecoverableSignatureNoneZ*)(*env)->CallLongMethod(env, obj, j_calls->sign_invoice_meth, invoice_preimage_arr); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } LDKCResult_RecoverableSignatureNoneZ ret_conv = *(LDKCResult_RecoverableSignatureNoneZ*)(((uint64_t)ret) & ~1); ret_conv = CResult_RecoverableSignatureNoneZ_clone((LDKCResult_RecoverableSignatureNoneZ*)(((uint64_t)ret) & ~1)); if (get_jenv_res == JNI_EDETACHED) { @@ -3852,6 +3947,10 @@ uint32_t get_est_sat_per_1000_weight_LDKFeeEstimator_jcall(const void* this_arg, jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); int32_t ret = (*env)->CallIntMethod(env, obj, j_calls->get_est_sat_per_1000_weight_meth, confirmation_target_conv); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } if (get_jenv_res == JNI_EDETACHED) { DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } @@ -3928,6 +4027,10 @@ void log_LDKLogger_jcall(const void* this_arg, const char* record) { jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); (*env)->CallVoidMethod(env, obj, j_calls->log_meth, record_conv); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } if (get_jenv_res == JNI_EDETACHED) { DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } @@ -5963,6 +6066,10 @@ LDKCVec_MessageSendEventZ get_and_clear_pending_msg_events_LDKMessageSendEventsP jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); int64_tArray ret = (*env)->CallObjectMethod(env, obj, j_calls->get_and_clear_pending_msg_events_meth); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } LDKCVec_MessageSendEventZ ret_constr; ret_constr.datalen = (*env)->GetArrayLength(env, ret); if (ret_constr.datalen > 0) @@ -6063,6 +6170,10 @@ void handle_event_LDKEventHandler_jcall(const void* this_arg, LDKEvent event) { jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); (*env)->CallVoidMethod(env, obj, j_calls->handle_event_meth, event_ref); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } if (get_jenv_res == JNI_EDETACHED) { DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } @@ -6137,6 +6248,10 @@ void process_pending_events_LDKEventsProvider_jcall(const void* this_arg, LDKEve jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); (*env)->CallVoidMethod(env, obj, j_calls->process_pending_events_meth, (uint64_t)ret); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } if (get_jenv_res == JNI_EDETACHED) { DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } @@ -6215,6 +6330,10 @@ LDKCResult_TxOutAccessErrorZ get_utxo_LDKAccess_jcall(const void* this_arg, cons jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); LDKCResult_TxOutAccessErrorZ* ret = (LDKCResult_TxOutAccessErrorZ*)(*env)->CallLongMethod(env, obj, j_calls->get_utxo_meth, genesis_hash_arr, short_channel_id); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } LDKCResult_TxOutAccessErrorZ ret_conv = *(LDKCResult_TxOutAccessErrorZ*)(((uint64_t)ret) & ~1); ret_conv = CResult_TxOutAccessErrorZ_clone((LDKCResult_TxOutAccessErrorZ*)(((uint64_t)ret) & ~1)); if (get_jenv_res == JNI_EDETACHED) { @@ -6299,6 +6418,10 @@ void block_connected_LDKListen_jcall(const void* this_arg, LDKu8slice block, uin jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); (*env)->CallVoidMethod(env, obj, j_calls->block_connected_meth, block_arr, height); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } if (get_jenv_res == JNI_EDETACHED) { DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } @@ -6317,6 +6440,10 @@ void block_disconnected_LDKListen_jcall(const void* this_arg, const uint8_t (* h jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); (*env)->CallVoidMethod(env, obj, j_calls->block_disconnected_meth, header_arr, height); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } if (get_jenv_res == JNI_EDETACHED) { DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } @@ -6419,6 +6546,10 @@ void transactions_confirmed_LDKConfirm_jcall(const void* this_arg, const uint8_t jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); (*env)->CallVoidMethod(env, obj, j_calls->transactions_confirmed_meth, header_arr, txdata_arr, height); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } if (get_jenv_res == JNI_EDETACHED) { DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } @@ -6437,6 +6568,10 @@ void transaction_unconfirmed_LDKConfirm_jcall(const void* this_arg, const uint8_ jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); (*env)->CallVoidMethod(env, obj, j_calls->transaction_unconfirmed_meth, txid_arr); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } if (get_jenv_res == JNI_EDETACHED) { DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } @@ -6455,6 +6590,10 @@ void best_block_updated_LDKConfirm_jcall(const void* this_arg, const uint8_t (* jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); (*env)->CallVoidMethod(env, obj, j_calls->best_block_updated_meth, header_arr, height); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } if (get_jenv_res == JNI_EDETACHED) { DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } @@ -6471,6 +6610,10 @@ LDKCVec_TxidZ get_relevant_txids_LDKConfirm_jcall(const void* this_arg) { jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); jobjectArray ret = (*env)->CallObjectMethod(env, obj, j_calls->get_relevant_txids_meth); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } LDKCVec_TxidZ ret_constr; ret_constr.datalen = (*env)->GetArrayLength(env, ret); if (ret_constr.datalen > 0) @@ -6621,6 +6764,10 @@ void register_tx_LDKFilter_jcall(const void* this_arg, const uint8_t (* txid)[32 jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); (*env)->CallVoidMethod(env, obj, j_calls->register_tx_meth, txid_arr, script_pubkey_arr); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } if (get_jenv_res == JNI_EDETACHED) { DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } @@ -6644,6 +6791,10 @@ LDKCOption_C2Tuple_usizeTransactionZZ register_output_LDKFilter_jcall(const void jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); LDKCOption_C2Tuple_usizeTransactionZZ* ret = (LDKCOption_C2Tuple_usizeTransactionZZ*)(*env)->CallLongMethod(env, obj, j_calls->register_output_meth, output_ref); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } LDKCOption_C2Tuple_usizeTransactionZZ ret_conv = *(LDKCOption_C2Tuple_usizeTransactionZZ*)(((uint64_t)ret) & ~1); ret_conv = COption_C2Tuple_usizeTransactionZZ_clone((LDKCOption_C2Tuple_usizeTransactionZZ*)(((uint64_t)ret) & ~1)); if (get_jenv_res == JNI_EDETACHED) { @@ -6757,6 +6908,10 @@ LDKCResult_NoneChannelMonitorUpdateErrZ persist_new_channel_LDKPersist_jcall(con jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); LDKCResult_NoneChannelMonitorUpdateErrZ* ret = (LDKCResult_NoneChannelMonitorUpdateErrZ*)(*env)->CallLongMethod(env, obj, j_calls->persist_new_channel_meth, id_ref, data_ref); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } LDKCResult_NoneChannelMonitorUpdateErrZ ret_conv = *(LDKCResult_NoneChannelMonitorUpdateErrZ*)(((uint64_t)ret) & ~1); ret_conv = CResult_NoneChannelMonitorUpdateErrZ_clone((LDKCResult_NoneChannelMonitorUpdateErrZ*)(((uint64_t)ret) & ~1)); if (get_jenv_res == JNI_EDETACHED) { @@ -6799,6 +6954,10 @@ LDKCResult_NoneChannelMonitorUpdateErrZ update_persisted_channel_LDKPersist_jcal jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); LDKCResult_NoneChannelMonitorUpdateErrZ* ret = (LDKCResult_NoneChannelMonitorUpdateErrZ*)(*env)->CallLongMethod(env, obj, j_calls->update_persisted_channel_meth, id_ref, update_ref, data_ref); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } LDKCResult_NoneChannelMonitorUpdateErrZ ret_conv = *(LDKCResult_NoneChannelMonitorUpdateErrZ*)(((uint64_t)ret) & ~1); ret_conv = CResult_NoneChannelMonitorUpdateErrZ_clone((LDKCResult_NoneChannelMonitorUpdateErrZ*)(((uint64_t)ret) & ~1)); if (get_jenv_res == JNI_EDETACHED) { @@ -6939,6 +7098,10 @@ void handle_open_channel_LDKChannelMessageHandler_jcall(const void* this_arg, LD jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); (*env)->CallVoidMethod(env, obj, j_calls->handle_open_channel_meth, their_node_id_arr, their_features_ref, msg_ref); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } if (get_jenv_res == JNI_EDETACHED) { DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } @@ -6972,6 +7135,10 @@ void handle_accept_channel_LDKChannelMessageHandler_jcall(const void* this_arg, jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); (*env)->CallVoidMethod(env, obj, j_calls->handle_accept_channel_meth, their_node_id_arr, their_features_ref, msg_ref); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } if (get_jenv_res == JNI_EDETACHED) { DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } @@ -6998,6 +7165,10 @@ void handle_funding_created_LDKChannelMessageHandler_jcall(const void* this_arg, jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); (*env)->CallVoidMethod(env, obj, j_calls->handle_funding_created_meth, their_node_id_arr, msg_ref); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } if (get_jenv_res == JNI_EDETACHED) { DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } @@ -7024,6 +7195,10 @@ void handle_funding_signed_LDKChannelMessageHandler_jcall(const void* this_arg, jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); (*env)->CallVoidMethod(env, obj, j_calls->handle_funding_signed_meth, their_node_id_arr, msg_ref); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } if (get_jenv_res == JNI_EDETACHED) { DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } @@ -7050,6 +7225,10 @@ void handle_funding_locked_LDKChannelMessageHandler_jcall(const void* this_arg, jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); (*env)->CallVoidMethod(env, obj, j_calls->handle_funding_locked_meth, their_node_id_arr, msg_ref); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } if (get_jenv_res == JNI_EDETACHED) { DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } @@ -7084,6 +7263,10 @@ void handle_shutdown_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPub jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); (*env)->CallVoidMethod(env, obj, j_calls->handle_shutdown_meth, their_node_id_arr, their_features_ref, msg_ref); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } if (get_jenv_res == JNI_EDETACHED) { DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } @@ -7110,6 +7293,10 @@ void handle_closing_signed_LDKChannelMessageHandler_jcall(const void* this_arg, jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); (*env)->CallVoidMethod(env, obj, j_calls->handle_closing_signed_meth, their_node_id_arr, msg_ref); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } if (get_jenv_res == JNI_EDETACHED) { DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } @@ -7136,6 +7323,10 @@ void handle_update_add_htlc_LDKChannelMessageHandler_jcall(const void* this_arg, jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); (*env)->CallVoidMethod(env, obj, j_calls->handle_update_add_htlc_meth, their_node_id_arr, msg_ref); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } if (get_jenv_res == JNI_EDETACHED) { DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } @@ -7162,6 +7353,10 @@ void handle_update_fulfill_htlc_LDKChannelMessageHandler_jcall(const void* this_ jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); (*env)->CallVoidMethod(env, obj, j_calls->handle_update_fulfill_htlc_meth, their_node_id_arr, msg_ref); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } if (get_jenv_res == JNI_EDETACHED) { DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } @@ -7188,6 +7383,10 @@ void handle_update_fail_htlc_LDKChannelMessageHandler_jcall(const void* this_arg jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); (*env)->CallVoidMethod(env, obj, j_calls->handle_update_fail_htlc_meth, their_node_id_arr, msg_ref); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } if (get_jenv_res == JNI_EDETACHED) { DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } @@ -7214,6 +7413,10 @@ void handle_update_fail_malformed_htlc_LDKChannelMessageHandler_jcall(const void jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); (*env)->CallVoidMethod(env, obj, j_calls->handle_update_fail_malformed_htlc_meth, their_node_id_arr, msg_ref); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } if (get_jenv_res == JNI_EDETACHED) { DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } @@ -7240,6 +7443,10 @@ void handle_commitment_signed_LDKChannelMessageHandler_jcall(const void* this_ar jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); (*env)->CallVoidMethod(env, obj, j_calls->handle_commitment_signed_meth, their_node_id_arr, msg_ref); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } if (get_jenv_res == JNI_EDETACHED) { DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } @@ -7266,6 +7473,10 @@ void handle_revoke_and_ack_LDKChannelMessageHandler_jcall(const void* this_arg, jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); (*env)->CallVoidMethod(env, obj, j_calls->handle_revoke_and_ack_meth, their_node_id_arr, msg_ref); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } if (get_jenv_res == JNI_EDETACHED) { DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } @@ -7292,6 +7503,10 @@ void handle_update_fee_LDKChannelMessageHandler_jcall(const void* this_arg, LDKP jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); (*env)->CallVoidMethod(env, obj, j_calls->handle_update_fee_meth, their_node_id_arr, msg_ref); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } if (get_jenv_res == JNI_EDETACHED) { DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } @@ -7318,6 +7533,10 @@ void handle_announcement_signatures_LDKChannelMessageHandler_jcall(const void* t jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); (*env)->CallVoidMethod(env, obj, j_calls->handle_announcement_signatures_meth, their_node_id_arr, msg_ref); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } if (get_jenv_res == JNI_EDETACHED) { DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } @@ -7336,6 +7555,10 @@ void peer_disconnected_LDKChannelMessageHandler_jcall(const void* this_arg, LDKP jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); (*env)->CallVoidMethod(env, obj, j_calls->peer_disconnected_meth, their_node_id_arr, no_connection_possible); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } if (get_jenv_res == JNI_EDETACHED) { DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } @@ -7362,6 +7585,10 @@ void peer_connected_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPubl jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); (*env)->CallVoidMethod(env, obj, j_calls->peer_connected_meth, their_node_id_arr, msg_ref); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } if (get_jenv_res == JNI_EDETACHED) { DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } @@ -7388,6 +7615,10 @@ void handle_channel_reestablish_LDKChannelMessageHandler_jcall(const void* this_ jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); (*env)->CallVoidMethod(env, obj, j_calls->handle_channel_reestablish_meth, their_node_id_arr, msg_ref); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } if (get_jenv_res == JNI_EDETACHED) { DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } @@ -7414,6 +7645,10 @@ void handle_channel_update_LDKChannelMessageHandler_jcall(const void* this_arg, jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); (*env)->CallVoidMethod(env, obj, j_calls->handle_channel_update_meth, their_node_id_arr, msg_ref); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } if (get_jenv_res == JNI_EDETACHED) { DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } @@ -7440,6 +7675,10 @@ void handle_error_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublic jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); (*env)->CallVoidMethod(env, obj, j_calls->handle_error_meth, their_node_id_arr, msg_ref); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } if (get_jenv_res == JNI_EDETACHED) { DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } @@ -7813,6 +8052,10 @@ LDKCResult_boolLightningErrorZ handle_node_announcement_LDKRoutingMessageHandler jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); LDKCResult_boolLightningErrorZ* ret = (LDKCResult_boolLightningErrorZ*)(*env)->CallLongMethod(env, obj, j_calls->handle_node_announcement_meth, msg_ref); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } LDKCResult_boolLightningErrorZ ret_conv = *(LDKCResult_boolLightningErrorZ*)(((uint64_t)ret) & ~1); ret_conv = CResult_boolLightningErrorZ_clone((LDKCResult_boolLightningErrorZ*)(((uint64_t)ret) & ~1)); if (get_jenv_res == JNI_EDETACHED) { @@ -7840,6 +8083,10 @@ LDKCResult_boolLightningErrorZ handle_channel_announcement_LDKRoutingMessageHand jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); LDKCResult_boolLightningErrorZ* ret = (LDKCResult_boolLightningErrorZ*)(*env)->CallLongMethod(env, obj, j_calls->handle_channel_announcement_meth, msg_ref); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } LDKCResult_boolLightningErrorZ ret_conv = *(LDKCResult_boolLightningErrorZ*)(((uint64_t)ret) & ~1); ret_conv = CResult_boolLightningErrorZ_clone((LDKCResult_boolLightningErrorZ*)(((uint64_t)ret) & ~1)); if (get_jenv_res == JNI_EDETACHED) { @@ -7867,6 +8114,10 @@ LDKCResult_boolLightningErrorZ handle_channel_update_LDKRoutingMessageHandler_jc jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); LDKCResult_boolLightningErrorZ* ret = (LDKCResult_boolLightningErrorZ*)(*env)->CallLongMethod(env, obj, j_calls->handle_channel_update_meth, msg_ref); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } LDKCResult_boolLightningErrorZ ret_conv = *(LDKCResult_boolLightningErrorZ*)(((uint64_t)ret) & ~1); ret_conv = CResult_boolLightningErrorZ_clone((LDKCResult_boolLightningErrorZ*)(((uint64_t)ret) & ~1)); if (get_jenv_res == JNI_EDETACHED) { @@ -7887,6 +8138,10 @@ void handle_htlc_fail_channel_update_LDKRoutingMessageHandler_jcall(const void* jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); (*env)->CallVoidMethod(env, obj, j_calls->handle_htlc_fail_channel_update_meth, ret_update); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } if (get_jenv_res == JNI_EDETACHED) { DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } @@ -7903,6 +8158,10 @@ LDKCVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ get_next_channel jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); int64_tArray ret = (*env)->CallObjectMethod(env, obj, j_calls->get_next_channel_announcements_meth, starting_point, batch_amount); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } LDKCVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ ret_constr; ret_constr.datalen = (*env)->GetArrayLength(env, ret); if (ret_constr.datalen > 0) @@ -7936,6 +8195,10 @@ LDKCVec_NodeAnnouncementZ get_next_node_announcements_LDKRoutingMessageHandler_j jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); int64_tArray ret = (*env)->CallObjectMethod(env, obj, j_calls->get_next_node_announcements_meth, starting_point_arr, batch_amount); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } LDKCVec_NodeAnnouncementZ ret_constr; ret_constr.datalen = (*env)->GetArrayLength(env, ret); if (ret_constr.datalen > 0) @@ -7979,6 +8242,10 @@ void sync_routing_table_LDKRoutingMessageHandler_jcall(const void* this_arg, LDK jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); (*env)->CallVoidMethod(env, obj, j_calls->sync_routing_table_meth, their_node_id_arr, init_ref); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } if (get_jenv_res == JNI_EDETACHED) { DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } @@ -8004,6 +8271,10 @@ LDKCResult_NoneLightningErrorZ handle_reply_channel_range_LDKRoutingMessageHandl jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); LDKCResult_NoneLightningErrorZ* ret = (LDKCResult_NoneLightningErrorZ*)(*env)->CallLongMethod(env, obj, j_calls->handle_reply_channel_range_meth, their_node_id_arr, msg_ref); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } LDKCResult_NoneLightningErrorZ ret_conv = *(LDKCResult_NoneLightningErrorZ*)(((uint64_t)ret) & ~1); ret_conv = CResult_NoneLightningErrorZ_clone((LDKCResult_NoneLightningErrorZ*)(((uint64_t)ret) & ~1)); if (get_jenv_res == JNI_EDETACHED) { @@ -8032,6 +8303,10 @@ LDKCResult_NoneLightningErrorZ handle_reply_short_channel_ids_end_LDKRoutingMess jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); LDKCResult_NoneLightningErrorZ* ret = (LDKCResult_NoneLightningErrorZ*)(*env)->CallLongMethod(env, obj, j_calls->handle_reply_short_channel_ids_end_meth, their_node_id_arr, msg_ref); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } LDKCResult_NoneLightningErrorZ ret_conv = *(LDKCResult_NoneLightningErrorZ*)(((uint64_t)ret) & ~1); ret_conv = CResult_NoneLightningErrorZ_clone((LDKCResult_NoneLightningErrorZ*)(((uint64_t)ret) & ~1)); if (get_jenv_res == JNI_EDETACHED) { @@ -8060,6 +8335,10 @@ LDKCResult_NoneLightningErrorZ handle_query_channel_range_LDKRoutingMessageHandl jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); LDKCResult_NoneLightningErrorZ* ret = (LDKCResult_NoneLightningErrorZ*)(*env)->CallLongMethod(env, obj, j_calls->handle_query_channel_range_meth, their_node_id_arr, msg_ref); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } LDKCResult_NoneLightningErrorZ ret_conv = *(LDKCResult_NoneLightningErrorZ*)(((uint64_t)ret) & ~1); ret_conv = CResult_NoneLightningErrorZ_clone((LDKCResult_NoneLightningErrorZ*)(((uint64_t)ret) & ~1)); if (get_jenv_res == JNI_EDETACHED) { @@ -8088,6 +8367,10 @@ LDKCResult_NoneLightningErrorZ handle_query_short_channel_ids_LDKRoutingMessageH jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); LDKCResult_NoneLightningErrorZ* ret = (LDKCResult_NoneLightningErrorZ*)(*env)->CallLongMethod(env, obj, j_calls->handle_query_short_channel_ids_meth, their_node_id_arr, msg_ref); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } LDKCResult_NoneLightningErrorZ ret_conv = *(LDKCResult_NoneLightningErrorZ*)(((uint64_t)ret) & ~1); ret_conv = CResult_NoneLightningErrorZ_clone((LDKCResult_NoneLightningErrorZ*)(((uint64_t)ret) & ~1)); if (get_jenv_res == JNI_EDETACHED) { @@ -8337,6 +8620,10 @@ uintptr_t send_data_LDKSocketDescriptor_jcall(void* this_arg, LDKu8slice data, b jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); int64_t ret = (*env)->CallLongMethod(env, obj, j_calls->send_data_meth, data_arr, resume_read); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } if (get_jenv_res == JNI_EDETACHED) { DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } @@ -8354,6 +8641,10 @@ void disconnect_socket_LDKSocketDescriptor_jcall(void* this_arg) { jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); (*env)->CallVoidMethod(env, obj, j_calls->disconnect_socket_meth); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } if (get_jenv_res == JNI_EDETACHED) { DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } @@ -8372,6 +8663,10 @@ bool eq_LDKSocketDescriptor_jcall(const void* this_arg, const LDKSocketDescripto jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); jboolean ret = (*env)->CallBooleanMethod(env, obj, j_calls->eq_meth, (uint64_t)other_arg_clone); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } if (get_jenv_res == JNI_EDETACHED) { DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } @@ -8389,6 +8684,10 @@ uint64_t hash_LDKSocketDescriptor_jcall(const void* this_arg) { jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); int64_t ret = (*env)->CallLongMethod(env, obj, j_calls->hash_meth); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } if (get_jenv_res == JNI_EDETACHED) { DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } @@ -8495,6 +8794,10 @@ LDKCResult_NoneErrorZ persist_manager_LDKChannelManagerPersister_jcall(const voi jobject obj = (*env)->NewLocalRef(env, j_calls->o); CHECK(obj != NULL); LDKCResult_NoneErrorZ* ret = (LDKCResult_NoneErrorZ*)(*env)->CallLongMethod(env, obj, j_calls->persist_manager_meth, channel_manager_ref); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionDescribe(env); + (*env)->FatalError(env, "A Java interface method called from rust threw an exception."); + } LDKCResult_NoneErrorZ ret_conv = *(LDKCResult_NoneErrorZ*)(((uint64_t)ret) & ~1); ret_conv = CResult_NoneErrorZ_clone((LDKCResult_NoneErrorZ*)(((uint64_t)ret) & ~1)); if (get_jenv_res == JNI_EDETACHED) {