diff --git a/dist/java/src/mp/code/BufferController.java b/dist/java/src/mp/code/BufferController.java index 0c14522..a6fcfd1 100644 --- a/dist/java/src/mp/code/BufferController.java +++ b/dist/java/src/mp/code/BufferController.java @@ -18,8 +18,8 @@ public class BufferController { return get_name(this.ptr); } - public static native String get_content(long self); - public String getContent() { + public static native String get_content(long self) throws CodeMPException; + public String getContent() throws CodeMPException { return get_content(this.ptr); } diff --git a/src/ffi/java/buffer.rs b/src/ffi/java/buffer.rs index a251d02..47b3ea1 100644 --- a/src/ffi/java/buffer.rs +++ b/src/ffi/java/buffer.rs @@ -26,7 +26,8 @@ pub extern "system" fn Java_mp_code_BufferController_get_1content( self_ptr: jlong, ) -> jstring { let controller = unsafe { Box::leak(Box::from_raw(self_ptr as *mut crate::buffer::Controller)) }; - let content = controller.content(); + let content = RT.block_on(controller.content()) + .jexcept(&mut env); env.new_string(content) .jexcept(&mut env) .as_raw() diff --git a/src/ffi/java/workspace.rs b/src/ffi/java/workspace.rs index b3673a4..6dd2cb7 100644 --- a/src/ffi/java/workspace.rs +++ b/src/ffi/java/workspace.rs @@ -245,7 +245,7 @@ pub extern "system" fn Java_mp_code_Workspace_select_1buffer( } } - RT.block_on(crate::buffer::tools::select_buffer( + RT.block_on(crate::ext::select_buffer( &controllers, Some(std::time::Duration::from_millis(timeout as u64)), &RT,