X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/a96479d66281806d9e372a705a1bdf4ebf6f8c84..a6c64d74cc84ef31accb835f570f990f5c45ecf8:/src/bindings/java/jmsg.cpp diff --git a/src/bindings/java/jmsg.cpp b/src/bindings/java/jmsg.cpp index 389a671835..7ffbb238d1 100644 --- a/src/bindings/java/jmsg.cpp +++ b/src/bindings/java/jmsg.cpp @@ -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; @@ -60,17 +60,17 @@ JNIEnv *get_current_thread_env() 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)"); } @@ -101,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); @@ -115,7 +115,7 @@ JNIEXPORT void JNICALL Java_org_simgrid_msg_Msg_init(JNIEnv * env, jclass cls, j setlocale(LC_NUMERIC,"C"); if (jargs) - argc = (int) env->GetArrayLength(jargs); + argc = static_cast(env->GetArrayLength(jargs)); argc++; argv = xbt_new(char *, argc + 1); @@ -134,9 +134,11 @@ JNIEXPORT void JNICALL Java_org_simgrid_msg_Msg_init(JNIEnv * env, jclass cls, j JAVA_HOST_LEVEL = simgrid::s4u::Host::extension_create(__JAVA_host_priv_free); JAVA_STORAGE_LEVEL = xbt_lib_add_level(storage_lib, __JAVA_storage_priv_free); - for (index = 0; index < argc; index++) + for (index = 0; index < argc - 1; index++) { + env->SetObjectArrayElement(jargs, index, (jstring)env->NewStringUTF(argv[index + 1])); free(argv[index]); - + } + free(argv[argc]); free(argv); } @@ -329,11 +331,8 @@ void java_main_jprocess(jobject jprocess) JNIEnv *env = get_current_thread_env(); simgrid::kernel::context::JavaContext* context = static_cast(SIMIX_context_self()); context->jprocess = jprocess; - smx_actor_t process = SIMIX_process_self(); - jprocess_bind(context->jprocess, process, env); + jprocess_bind(context->jprocess, MSG_process_self(), env); - // Adrien, ugly path, just to bypass creation of context at low levels (i.e such as for the VM migration for instance) - if (context->jprocess != nullptr) - run_jprocess(env, context->jprocess); + run_jprocess(env, context->jprocess); } }}}