From 51300d0678fe7d82885ad873f5d0a9413536676a Mon Sep 17 00:00:00 2001 From: Arnaud Giersch Date: Wed, 13 Feb 2013 10:54:46 +0100 Subject: [PATCH 1/1] Fix errors caught by java -Xcheck:jni. Fixed warnings: WARNING in native method: JNI call made with exception pending --- examples/java/cloud/cloud.tesh | 3 --- src/bindings/java/jmsg_process.c | 3 +++ src/bindings/java/jmsg_task.c | 4 ++++ 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/examples/java/cloud/cloud.tesh b/examples/java/cloud/cloud.tesh index 555486510a..1f958c233d 100644 --- a/examples/java/cloud/cloud.tesh +++ b/examples/java/cloud/cloud.tesh @@ -154,6 +154,3 @@ $ java -cp ${classpath:=.} cloud/Cloud ${srcdir:=.}/platform.xml "--log=root.fmt > [1023.429105] (1:Master@Jacquelin) Let's shut down the simulation and kill everyone. > [1023.429105] (1:Master@Jacquelin) Master done. > [1023.429105] (21:Slave 19@Provost) Received "Task_19". Processing it. -> [1023.429105] (21:Slave 19@Provost) "Task_19" done -> [1023.429105] (21:Slave 19@Provost) Receiving on slave_19 - diff --git a/src/bindings/java/jmsg_process.c b/src/bindings/java/jmsg_process.c index 7e40aec448..2f6216eeba 100644 --- a/src/bindings/java/jmsg_process.c +++ b/src/bindings/java/jmsg_process.c @@ -348,6 +348,8 @@ Java_org_simgrid_msg_Process_waitFor(JNIEnv * env, jobject jprocess, { msg_error_t rv; rv = MSG_process_sleep((double)jseconds); + if ((*env)->ExceptionOccurred(env)) + return; if (rv != MSG_OK) { XBT_DEBUG("Status NOK"); jmsg_throw_status(env,rv); @@ -389,6 +391,7 @@ Java_org_simgrid_msg_Process_migrate(JNIEnv * env, msg_error_t rv = MSG_process_migrate(process, host); if (rv != MSG_OK) { jmsg_throw_status(env,rv); + return; } /* change the host java side */ (*env)->SetObjectField(env, jprocess, jprocess_field_Process_host, jhost); diff --git a/src/bindings/java/jmsg_task.c b/src/bindings/java/jmsg_task.c index 77c57e3871..ddc174085f 100644 --- a/src/bindings/java/jmsg_task.c +++ b/src/bindings/java/jmsg_task.c @@ -218,6 +218,8 @@ Java_org_simgrid_msg_Task_execute(JNIEnv * env, jobject jtask) } msg_error_t rv; rv = MSG_task_execute(task); + if ((*env)->ExceptionOccurred(env)) + return; if (rv != MSG_OK) { jmsg_throw_status(env, rv); } @@ -433,6 +435,8 @@ Java_org_simgrid_msg_Task_receive(JNIEnv * env, jclass cls, alias = (*env)->GetStringUTFChars(env, jalias, 0); rv = MSG_task_receive_ext(task, alias, (double) jtimeout, host); + if ((*env)->ExceptionOccurred(env)) + return NULL; if (rv != MSG_OK) { jmsg_throw_status(env,rv); return NULL; -- 2.20.1