X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/08e7455d67920bbd7a87f440d00f2c1e071314a0..67d66b0cf79b9fc02c0450f254584693dbf21d3b:/src/bindings/java/jmsg.cpp diff --git a/src/bindings/java/jmsg.cpp b/src/bindings/java/jmsg.cpp index 3241e34e89..bdc6661fb7 100644 --- a/src/bindings/java/jmsg.cpp +++ b/src/bindings/java/jmsg.cpp @@ -14,17 +14,14 @@ #include "simgrid/plugins/file_system.h" #include "simgrid/plugins/live_migration.h" #include "simgrid/plugins/load.h" -#include "simgrid/simix.h" +#include "simgrid/s4u/Actor.hpp" #include "simgrid/s4u/Host.hpp" -#include "src/simix/smx_private.hpp" - #include "jmsg.hpp" #include "jmsg_as.hpp" #include "jmsg_host.h" #include "jmsg_process.h" -#include "jmsg_storage.h" #include "jmsg_task.h" #include "jxbt_utilities.hpp" @@ -107,9 +104,8 @@ JNIEXPORT void JNICALL Java_org_simgrid_msg_Msg_init(JNIEnv* env, jclass, jobjec args.emplace_back("java"); for (int index = 1; index < argc; index++) { auto jval = (jstring)env->GetObjectArrayElement(jargs, index - 1); - const char* tmp = env->GetStringUTFChars(jval, nullptr); - args.emplace_back(tmp); - env->ReleaseStringUTFChars(jval, tmp); + jstring_wrapper tmp(env, jval); + args.emplace_back(tmp.value); } std::unique_ptr argv(new char*[argc + 1]); @@ -144,10 +140,6 @@ JNIEXPORT void JNICALL JNICALL Java_org_simgrid_msg_Msg_run(JNIEnv* env, jclass) } xbt_free(hosts); - /* Cleanup java storages */ - for (auto const& elm : java_storage_map) - jstorage_unref(env, elm.second); - /* Display the status of remaining threads. None should survive, but who knows */ jclass clsProcess = jxbt_get_class(env, "org/simgrid/msg/Process"); jmethodID idDebug = jxbt_get_static_jmethod(env, clsProcess, "debugAllThreads", "()V"); @@ -157,11 +149,8 @@ JNIEXPORT void JNICALL JNICALL Java_org_simgrid_msg_Msg_run(JNIEnv* env, jclass) JNIEXPORT void JNICALL Java_org_simgrid_msg_Msg_createEnvironment(JNIEnv* env, jclass, jstring jplatformFile) { - const char* platformFile = env->GetStringUTFChars(jplatformFile, nullptr); - + jstring_wrapper platformFile(env, jplatformFile); simgrid_load_platform(platformFile); - - env->ReleaseStringUTFChars(jplatformFile, platformFile); } JNIEXPORT jobject JNICALL Java_org_simgrid_msg_Msg_environmentGetRoutingRoot(JNIEnv* env, jclass) @@ -184,51 +173,45 @@ JNIEXPORT jobject JNICALL Java_org_simgrid_msg_Msg_environmentGetRoutingRoot(JNI JNIEXPORT void JNICALL Java_org_simgrid_msg_Msg_debug(JNIEnv* env, jclass, jstring js) { - const char* s = env->GetStringUTFChars(js, nullptr); - XBT_DEBUG("%s", s); - env->ReleaseStringUTFChars(js, s); + jstring_wrapper s(env, js); + XBT_DEBUG("%s", s.value); } JNIEXPORT void JNICALL Java_org_simgrid_msg_Msg_verb(JNIEnv* env, jclass, jstring js) { - const char* s = env->GetStringUTFChars(js, nullptr); - XBT_VERB("%s", s); - env->ReleaseStringUTFChars(js, s); + jstring_wrapper s(env, js); + XBT_VERB("%s", s.value); } JNIEXPORT void JNICALL Java_org_simgrid_msg_Msg_info(JNIEnv* env, jclass, jstring js) { - const char* s = env->GetStringUTFChars(js, nullptr); - XBT_INFO("%s", s); - env->ReleaseStringUTFChars(js, s); + jstring_wrapper s(env, js); + XBT_INFO("%s", s.value); } JNIEXPORT void JNICALL Java_org_simgrid_msg_Msg_warn(JNIEnv* env, jclass, jstring js) { - const char* s = env->GetStringUTFChars(js, nullptr); - XBT_WARN("%s", s); - env->ReleaseStringUTFChars(js, s); + jstring_wrapper s(env, js); + XBT_WARN("%s", s.value); } JNIEXPORT void JNICALL Java_org_simgrid_msg_Msg_error(JNIEnv* env, jclass, jstring js) { - const char* s = env->GetStringUTFChars(js, nullptr); - XBT_ERROR("%s", s); - env->ReleaseStringUTFChars(js, s); + jstring_wrapper s(env, js); + XBT_ERROR("%s", s.value); } JNIEXPORT void JNICALL Java_org_simgrid_msg_Msg_critical(JNIEnv* env, jclass, jstring js) { - const char* s = env->GetStringUTFChars(js, nullptr); - XBT_CRITICAL("%s", s); - env->ReleaseStringUTFChars(js, s); + jstring_wrapper s(env, js); + XBT_CRITICAL("%s", s.value); } static void java_main(int argc, char* argv[]); JNIEXPORT void JNICALL Java_org_simgrid_msg_Msg_deployApplication(JNIEnv* env, jclass, jstring jdeploymentFile) { - const char* deploymentFile = env->GetStringUTFChars(jdeploymentFile, nullptr); + jstring_wrapper deploymentFile(env, jdeploymentFile); simgrid_register_default(java_main); simgrid_load_deployment(deploymentFile); @@ -238,11 +221,6 @@ JNIEXPORT void JNICALL Java_org_simgrid_msg_Msg_energyInit() { sg_host_energy_plugin_init(); } -JNIEXPORT void JNICALL Java_org_simgrid_msg_Msg_fileSystemInit() -{ - sg_storage_file_system_init(); -} - JNIEXPORT void JNICALL Java_org_simgrid_msg_Msg_loadInit() { sg_host_load_plugin_init(); } @@ -267,8 +245,7 @@ static void run_jprocess(JNIEnv *env, jobject jprocess) if (env->ExceptionOccurred()) { XBT_DEBUG("Something went wrong in this Java actor, forget about it."); env->ExceptionClear(); - XBT_ATTRIB_UNUSED jint error = __java_vm->DetachCurrentThread(); - xbt_assert(error == JNI_OK, "Cannot detach failing thread"); + xbt_assert(__java_vm->DetachCurrentThread() == JNI_OK, "Cannot detach failing thread"); simgrid::ForcefulKillException::do_throw(); } }