From: Frederic Suter Date: Wed, 29 Jun 2016 09:20:21 +0000 (+0200) Subject: Attempt to solve issues with our own finalize X-Git-Tag: v3_14~838 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/43d9c42c766d4bbe9667bec4ee832242e4f22e0b Attempt to solve issues with our own finalize follow syntax from the java in a nutshell book --- diff --git a/src/bindings/java/org/simgrid/msg/Comm.java b/src/bindings/java/org/simgrid/msg/Comm.java index 8d07c51b9d..29c5587ede 100644 --- a/src/bindings/java/org/simgrid/msg/Comm.java +++ b/src/bindings/java/org/simgrid/msg/Comm.java @@ -33,13 +33,8 @@ public class Comm { } /** Destroy the C communication object, when the GC reclaims the java part. */ - @Override - protected void finalize() { - try { - nativeFinalize(); - } catch (Throwable e) { - e.printStackTrace(); - } + protected void finalize() throws Throwable{ + nativeFinalize(); } protected native void nativeFinalize(); /** diff --git a/src/bindings/java/org/simgrid/msg/Mutex.java b/src/bindings/java/org/simgrid/msg/Mutex.java index d670f556db..80f013bec1 100644 --- a/src/bindings/java/org/simgrid/msg/Mutex.java +++ b/src/bindings/java/org/simgrid/msg/Mutex.java @@ -17,13 +17,9 @@ public class Mutex { public Mutex() { init(); } - @Override - protected void finalize() { - try { - nativeFinalize(); - } catch (Throwable e) { - e.printStackTrace(); - } + + protected void finalize() throws Throwable{ + nativeFinalize(); } private native void nativeFinalize(); private native void init(); diff --git a/src/bindings/java/org/simgrid/msg/RngStream.java b/src/bindings/java/org/simgrid/msg/RngStream.java index 7e6feccd2a..e286c4a2e3 100644 --- a/src/bindings/java/org/simgrid/msg/RngStream.java +++ b/src/bindings/java/org/simgrid/msg/RngStream.java @@ -41,13 +41,9 @@ public class RngStream { * The natively implemented method to create a C RngStream object. */ private native void create(String name); - @Override - protected void finalize() { - try { - nativeFinalize(); - } catch (Throwable e) { - e.printStackTrace(); - } + + protected void finalize() throws Throwable{ + nativeFinalize(); } /** * Release the C RngStream object diff --git a/src/bindings/java/org/simgrid/msg/Semaphore.java b/src/bindings/java/org/simgrid/msg/Semaphore.java index 4952184c95..4f23563f34 100644 --- a/src/bindings/java/org/simgrid/msg/Semaphore.java +++ b/src/bindings/java/org/simgrid/msg/Semaphore.java @@ -67,13 +67,8 @@ public class Semaphore { /** Deletes this semaphore when the GC reclaims it */ - @Override - protected void finalize() { - try { - nativeFinalize(); - } catch (Throwable e) { - e.printStackTrace(); - } + protected void finalize() throws Throwable { + nativeFinalize(); } private native void nativeFinalize(); /** diff --git a/src/bindings/java/org/simgrid/msg/Task.java b/src/bindings/java/org/simgrid/msg/Task.java index bd9bf7bad1..26dc2b021c 100644 --- a/src/bindings/java/org/simgrid/msg/Task.java +++ b/src/bindings/java/org/simgrid/msg/Task.java @@ -167,16 +167,9 @@ public class Task { public native void cancel(); /** Deletes a task once the garbage collector reclaims it */ - @Override - protected void finalize() { - try { - // Exceptions in finalizers lead to bad situations: - // http://stackoverflow.com/questions/7644556/troubleshooting-a-java-memory-leak-finalization - nativeFinalize(); - bind=0; // to avoid segfaults if the impossible happens yet again making this task surviving its finalize() - } catch (Throwable e) { - e.printStackTrace(); - } + protected void finalize() throws Throwable{ + nativeFinalize(); + bind=0; // to avoid segfaults if the impossible happens yet again making this task surviving its finalize() } protected native void nativeFinalize(); /* * * *