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;
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)");
}
jstring jval;
const char *tmp;
- XBT_LOG_CONNECT(jmsg);
+ XBT_LOG_CONNECT(java);
XBT_LOG_CONNECT(jtrace);
env->GetJavaVM(&__java_vm);