Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
stringify exception message in java bindings
[simgrid.git] / src / bindings / java / jmsg.cpp
index 944919d..bd23d38 100644 (file)
@@ -41,7 +41,7 @@ SG_BEGIN_DECL()
 int JAVA_HOST_LEVEL = -1;
 int JAVA_STORAGE_LEVEL = -1;
 
-XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(jmsg);
+XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(java);
 
 JavaVM *__java_vm = nullptr;
 
@@ -52,26 +52,25 @@ JavaVM *get_java_VM()
 
 JNIEnv *get_current_thread_env()
 {
-  JNIEnv *env;
-
-  __java_vm->AttachCurrentThread((void **) &env, nullptr);
-  return env;
+  using simgrid::kernel::context::JavaContext;
+  JavaContext* ctx = static_cast<JavaContext*>(xbt_os_thread_get_extra_data());
+  return ctx->jenv;
 }
 
 void jmsg_throw_status(JNIEnv *env, msg_error_t status) {
   switch (status) {
     case MSG_TIMEOUT:
-        jxbt_throw_time_out_failure(env,nullptr);
-    break;
+      jxbt_throw_time_out_failure(env, "");
+      break;
     case MSG_TRANSFER_FAILURE:
-        jxbt_throw_transfer_failure(env,nullptr);
-    break;
+      jxbt_throw_transfer_failure(env, "");
+      break;
     case MSG_HOST_FAILURE:
-        jxbt_throw_host_failure(env,nullptr);
-    break;
+      jxbt_throw_host_failure(env, "");
+      break;
     case MSG_TASK_CANCELED:
-        jxbt_throw_task_cancelled(env,nullptr);
-    break;
+      jxbt_throw_task_cancelled(env, "");
+      break;
     default:
       xbt_die("undefined message failed (please see jmsg_throw_status function in jmsg.cpp)");
   }
@@ -102,7 +101,7 @@ JNIEXPORT void JNICALL Java_org_simgrid_msg_Msg_init(JNIEnv * env, jclass cls, j
   jstring jval;
   const char *tmp;
 
-  XBT_LOG_CONNECT(jmsg);
+  XBT_LOG_CONNECT(java);
   XBT_LOG_CONNECT(jtrace);
 
   env->GetJavaVM(&__java_vm);