@@ -2121,24 +2121,19 @@ JNIEXPORT jlong JNICALL Java_software_amazon_awssdk_crt_mqtt5_Mqtt5Client_mqtt5C
21212121 /* Check if metrics are enabled and set metrics value */
21222122 jboolean metrics_enabled =
21232123 (* env )-> GetBooleanField (env , jni_options , mqtt5_client_options_properties .metrics_enabled_field_id );
2124- if (aws_jni_check_and_clear_exception (env )) {
2125- s_aws_mqtt5_client_log_and_throw_exception (
2126- env , "MQTT5 client new: error getting metrics enabled" , AWS_ERROR_INVALID_STATE );
2127- goto clean_up ;
2128- }
2124+ bool metrics_has_error = aws_jni_check_and_clear_exception (env );
21292125
2130- if (metrics_enabled ) {
2126+ if (! metrics_has_error && metrics_enabled ) {
21312127 jobject jni_iot_device_sdk_metrics =
21322128 (* env )-> GetObjectField (env , jni_options , mqtt5_client_options_properties .iot_device_sdk_metrics_field_id );
2133- if (aws_jni_check_and_clear_exception (env )) {
2134- s_aws_mqtt5_client_log_and_throw_exception (
2135- env , "MQTT5 client new: error getting IoT device SDK metrics" , AWS_ERROR_INVALID_STATE );
2136- goto clean_up ;
2129+ if (!aws_jni_check_and_clear_exception (env )) {
2130+ iot_device_sdk_metrics =
2131+ aws_mqtt_iot_sdk_metrics_java_jni_create_from_java (env , allocator , jni_iot_device_sdk_metrics );
2132+ client_options .metrics = iot_device_sdk_metrics ? & iot_device_sdk_metrics -> metrics : NULL ;
2133+ } else {
2134+ AWS_LOGF_DEBUG (
2135+ AWS_LS_MQTT5_CLIENT , "MQTT5 client new: Was unable to set metrics, continuing with no metrics." );
21372136 }
2138-
2139- iot_device_sdk_metrics =
2140- aws_mqtt_iot_sdk_metrics_java_jni_create_from_java (env , allocator , jni_iot_device_sdk_metrics );
2141- client_options .metrics = & iot_device_sdk_metrics -> metrics ;
21422137 }
21432138
21442139 /* Make the MQTT5 client */
0 commit comments