X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/6a846ad553db254d40d568b15dd50b2300bb1411..51808185aef5858ecfe879351fbfa9a9814cb674:/src/java/jmsg.c diff --git a/src/java/jmsg.c b/src/java/jmsg.c index e74aec4f8d..61fef1cdd1 100644 --- a/src/java/jmsg.c +++ b/src/java/jmsg.c @@ -988,17 +988,26 @@ Java_simgrid_msg_MsgNative_allHosts(JNIEnv * env, jclass cls_arg) { JNIEXPORT void JNICALL Java_simgrid_msg_MsgNative_selectContextFactory(JNIEnv * env, jclass class,jstring jname) { - int rv; + char *errmsg=NULL; + xbt_ex_t e; - /* get the C string from the java string*/ - const char* name = (*env)->GetStringUTFChars(env, jname, 0); - - rv = xbt_context_select_factory(name); - + /* get the C string from the java string*/ + const char* name = (*env)->GetStringUTFChars(env, jname, 0); + + TRY { + xbt_context_select_factory(name); + } CATCH(e) { + errmsg = xbt_strdup(e.msg); + xbt_ex_free(e); + } + (*env)->ReleaseStringUTFChars(env, jname, name); - if(rv) - jxbt_throw_native(env, xbt_strdup("xbt_select_context_factory() failed")); + if(errmsg) { + char *thrown = bprintf("xbt_select_context_factory() failed: %s",errmsg); + free(errmsg); + jxbt_throw_native(env, thrown); + } } JNIEXPORT void JNICALL