Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix errors caught by java -Xcheck:jni.
authorArnaud Giersch <arnaud.giersch@iut-bm.univ-fcomte.fr>
Wed, 13 Feb 2013 09:54:46 +0000 (10:54 +0100)
committerArnaud Giersch <arnaud.giersch@iut-bm.univ-fcomte.fr>
Wed, 13 Feb 2013 09:59:40 +0000 (10:59 +0100)
Fixed warnings:
WARNING in native method: JNI call made with exception pending

examples/java/cloud/cloud.tesh
src/bindings/java/jmsg_process.c
src/bindings/java/jmsg_task.c

index 5554865..1f958c2 100644 (file)
@@ -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] (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
-
index 7e40aec..2f6216e 100644 (file)
@@ -348,6 +348,8 @@ Java_org_simgrid_msg_Process_waitFor(JNIEnv * env, jobject jprocess,
 {
   msg_error_t rv;
   rv = MSG_process_sleep((double)jseconds);
 {
   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);
   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);
   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);
   }
   /* change the host java side */
   (*env)->SetObjectField(env, jprocess, jprocess_field_Process_host, jhost);
index 77c57e3..ddc1740 100644 (file)
@@ -218,6 +218,8 @@ Java_org_simgrid_msg_Task_execute(JNIEnv * env, jobject jtask)
   }
   msg_error_t rv;
   rv = MSG_task_execute(task);
   }
   msg_error_t rv;
   rv = MSG_task_execute(task);
+  if ((*env)->ExceptionOccurred(env))
+    return;
   if (rv != MSG_OK) {
     jmsg_throw_status(env, rv);
   }
   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);
 
   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;
   if (rv != MSG_OK) {
     jmsg_throw_status(env,rv);
     return NULL;