From 14617d0f365dfe02c0fdce7953e55cfca35cc6e4 Mon Sep 17 00:00:00 2001 From: Henry Bruce Date: Tue, 1 Mar 2016 13:35:10 -0800 Subject: [PATCH] java: Throw exception if mraa_init() fails Signed-off-by: Henry Bruce --- src/java/mraajava.i | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/java/mraajava.i b/src/java/mraajava.i index 5225e29..86abc53 100644 --- a/src/java/mraajava.i +++ b/src/java/mraajava.i @@ -72,13 +72,17 @@ class Spi; jint JNI_OnLoad(JavaVM *vm, void *reserved) { /* initialize mraa and set jni functions */ mraa_result_t res = mraa_init(); - if (res == MRAA_SUCCESS || res == MRAA_ERROR_PLATFORM_ALREADY_INITIALISED) { + if (res == MRAA_SUCCESS) { mraa_java_set_jvm(vm); lang_func->java_isr_callback = &mraa_java_isr_callback; lang_func->java_attach_thread = &mraa_java_attach_thread; lang_func->java_detach_thread = &mraa_java_detach_thread; lang_func->java_create_global_ref = &mraa_java_create_global_ref; lang_func->java_delete_global_ref = &mraa_java_delete_global_ref; + } else { + JNIEnv* jenv; + vm->GetEnv((void**)&jenv, JNI_REQUIRED_VERSION); + SWIG_JavaException(jenv, SWIG_RuntimeError, "mraa_init() failed"); } return JNI_REQUIRED_VERSION; }