@@ -95,11 +95,15 @@ pub unsafe extern "C" fn Java_io_zenoh_jni_JNISession_closeSessionViaJNI(
9595 _class : JClass ,
9696 session_ptr : * const Session ,
9797) {
98- let session = Arc :: from_raw ( session_ptr) ;
99- let _ = || -> ZResult < ( ) > {
100- zenoh_flat:: session:: close_session ( & session)
98+ || -> ZResult < ( ) > {
99+ let session = Arc :: from_raw ( session_ptr) ;
100+ zenoh_flat:: session:: close_session ( & session) ?;
101+ Ok ( ( ) )
101102 } ( )
102- . map_err ( |err| throw_exception ! ( env, err) ) ;
103+ . unwrap_or_else ( |err| {
104+ throw_exception ! ( env, err) ;
105+ ( )
106+ } ) ;
103107}
104108
105109/// Declare a Zenoh publisher via JNI.
@@ -140,8 +144,8 @@ pub unsafe extern "C" fn Java_io_zenoh_jni_JNISession_declarePublisherViaJNI(
140144 is_express : jboolean ,
141145 reliability : jint ,
142146) -> * const Publisher < ' static > {
143- let session = OwnedObject :: from_raw ( session_ptr) ;
144147 || -> ZResult < * const Publisher < ' static > > {
148+ let session = OwnedObject :: from_raw ( session_ptr) ;
145149 let key_expr = process_kotlin_key_expr ( & mut env, & key_expr_str, key_expr_ptr) ?;
146150 let congestion_control = decode_congestion_control ( congestion_control) ?;
147151 let priority = decode_priority ( priority) ?;
@@ -206,8 +210,8 @@ pub unsafe extern "C" fn Java_io_zenoh_jni_JNISession_putViaJNI(
206210 attachment : JByteArray ,
207211 reliability : jint ,
208212) {
209- let session = OwnedObject :: from_raw ( session_ptr ) ;
210- let _ = || -> ZResult < ( ) > {
213+ || -> ZResult < ( ) > {
214+ let session = OwnedObject :: from_raw ( session_ptr ) ;
211215 let key_expr = process_kotlin_key_expr ( & mut env, & key_expr_str, key_expr_ptr) ?;
212216 let payload = decode_byte_array ( & env, payload) ?;
213217 let encoding = decode_encoding ( & mut env, encoding_id, & encoding_schema) ?;
@@ -231,9 +235,13 @@ pub unsafe extern "C" fn Java_io_zenoh_jni_JNISession_putViaJNI(
231235 is_express,
232236 attachment,
233237 reliability,
234- )
238+ ) ?;
239+ Ok ( ( ) )
235240 } ( )
236- . map_err ( |err| throw_exception ! ( env, err) ) ;
241+ . unwrap_or_else ( |err| {
242+ throw_exception ! ( env, err) ;
243+ ( )
244+ } ) ;
237245}
238246
239247/// Performs a `delete` operation in the Zenoh session via JNI.
@@ -274,8 +282,8 @@ pub unsafe extern "C" fn Java_io_zenoh_jni_JNISession_deleteViaJNI(
274282 attachment : JByteArray ,
275283 reliability : jint ,
276284) {
277- let session = OwnedObject :: from_raw ( session_ptr ) ;
278- let _ = || -> ZResult < ( ) > {
285+ || -> ZResult < ( ) > {
286+ let session = OwnedObject :: from_raw ( session_ptr ) ;
279287 let key_expr = process_kotlin_key_expr ( & mut env, & key_expr_str, key_expr_ptr) ?;
280288 let congestion_control = decode_congestion_control ( congestion_control) ?;
281289 let priority = decode_priority ( priority) ?;
@@ -295,9 +303,13 @@ pub unsafe extern "C" fn Java_io_zenoh_jni_JNISession_deleteViaJNI(
295303 is_express,
296304 attachment,
297305 reliability,
298- )
306+ ) ?;
307+ Ok ( ( ) )
299308 } ( )
300- . map_err ( |err| throw_exception ! ( env, err) ) ;
309+ . unwrap_or_else ( |err| {
310+ throw_exception ! ( env, err) ;
311+ ( )
312+ } ) ;
301313}
302314
303315/// Declare a Zenoh subscriber via JNI.
@@ -336,8 +348,8 @@ pub unsafe extern "C" fn Java_io_zenoh_jni_JNISession_declareSubscriberViaJNI(
336348 callback : JObject ,
337349 on_close : JObject ,
338350) -> * const Subscriber < ( ) > {
339- let session = OwnedObject :: from_raw ( session_ptr) ;
340351 || -> ZResult < * const Subscriber < ( ) > > {
352+ let session = OwnedObject :: from_raw ( session_ptr) ;
341353 let key_expr = process_kotlin_key_expr ( & mut env, & key_expr_str, key_expr_ptr) ?;
342354 let callback = process_kotlin_sample_callback ( & mut env, callback, on_close) ?;
343355
@@ -346,7 +358,6 @@ pub unsafe extern "C" fn Java_io_zenoh_jni_JNISession_declareSubscriberViaJNI(
346358 key_expr,
347359 callback,
348360 ) ?;
349-
350361 Ok ( Arc :: into_raw ( Arc :: new ( subscriber) ) )
351362 } ( )
352363 . unwrap_or_else ( |err| {
@@ -388,8 +399,8 @@ pub unsafe extern "C" fn Java_io_zenoh_jni_JNISession_declareQuerierViaJNI(
388399 timeout_ms : jlong ,
389400 accept_replies : jint ,
390401) -> * const Querier < ' static > {
391- let session = OwnedObject :: from_raw ( session_ptr) ;
392402 || -> ZResult < * const Querier < ' static > > {
403+ let session = OwnedObject :: from_raw ( session_ptr) ;
393404 let key_expr = process_kotlin_key_expr ( & mut env, & key_expr_str, key_expr_ptr) ?;
394405 let query_target = decode_query_target ( target) ?;
395406 let consolidation = decode_consolidation ( consolidation) ?;
@@ -398,7 +409,6 @@ pub unsafe extern "C" fn Java_io_zenoh_jni_JNISession_declareQuerierViaJNI(
398409 let is_express = is_express != 0 ;
399410 let timeout = Duration :: from_millis ( timeout_ms as u64 ) ;
400411 let reply_key_expr = decode_reply_key_expr ( accept_replies) ?;
401-
402412 let querier = zenoh_flat:: session:: declare_querier (
403413 & session,
404414 key_expr,
@@ -410,7 +420,6 @@ pub unsafe extern "C" fn Java_io_zenoh_jni_JNISession_declareQuerierViaJNI(
410420 timeout,
411421 reply_key_expr,
412422 ) ?;
413-
414423 Ok ( Arc :: into_raw ( Arc :: new ( querier) ) )
415424 } ( )
416425 . unwrap_or_else ( |err| {
@@ -459,14 +468,12 @@ pub unsafe extern "C" fn Java_io_zenoh_jni_JNISession_declareQueryableViaJNI(
459468 on_close : JObject ,
460469 complete : jboolean ,
461470) -> * const Queryable < ( ) > {
462- let session = OwnedObject :: from_raw ( session_ptr) ;
463471 || -> ZResult < * const Queryable < ( ) > > {
472+ let session = OwnedObject :: from_raw ( session_ptr) ;
464473 let key_expr = process_kotlin_key_expr ( & mut env, & key_expr_str, key_expr_ptr) ?;
465474 let callback = process_kotlin_query_callback ( & mut env, callback, on_close) ?;
466475 let complete = complete != 0 ;
467-
468476 let queryable = zenoh_flat:: session:: declare_queryable ( & session, key_expr, callback, complete) ?;
469-
470477 Ok ( Arc :: into_raw ( Arc :: new ( queryable) ) )
471478 } ( )
472479 . unwrap_or_else ( |err| {
@@ -501,8 +508,8 @@ pub unsafe extern "C" fn Java_io_zenoh_jni_JNISession_declareKeyExprViaJNI(
501508 session_ptr : * const Session ,
502509 key_expr_str : JString ,
503510) -> * const KeyExpr < ' static > {
504- let session = OwnedObject :: from_raw ( session_ptr) ;
505511 || -> ZResult < * const KeyExpr < ' static > > {
512+ let session = OwnedObject :: from_raw ( session_ptr) ;
506513 let key_expr_str = decode_string ( & mut env, & key_expr_str) ?;
507514 let key_expr = session
508515 . declare_keyexpr ( key_expr_str. to_owned ( ) )
0 commit comments