diff options
author | Jose <jose@zeroc.com> | 2008-12-18 14:32:27 +0100 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2008-12-18 14:32:27 +0100 |
commit | 57a0a4333fbb0b41cd7423b37b59534455a3173b (patch) | |
tree | 174b28cf580405b213ae4da8fd96b2ca509bd9aa /java/src/IceUtilInternal/Assert.java | |
parent | Merge branch 'R3_3_branch'; commit 'origin/R3_3_branch' into R3_3_branch (diff) | |
download | ice-57a0a4333fbb0b41cd7423b37b59534455a3173b.tar.bz2 ice-57a0a4333fbb0b41cd7423b37b59534455a3173b.tar.xz ice-57a0a4333fbb0b41cd7423b37b59534455a3173b.zip |
Revert "Remove Java finalizers code"
This reverts commit 94e1da6dc82a8ed38ee7a5691d691d375aaa28cb.
Diffstat (limited to 'java/src/IceUtilInternal/Assert.java')
-rw-r--r-- | java/src/IceUtilInternal/Assert.java | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/java/src/IceUtilInternal/Assert.java b/java/src/IceUtilInternal/Assert.java new file mode 100644 index 00000000000..314f20d8200 --- /dev/null +++ b/java/src/IceUtilInternal/Assert.java @@ -0,0 +1,45 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2008 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +package IceUtilInternal; + +public final class Assert +{ + // + // The JVM ignores exceptions raised in finalizers, therefore finalizers + // that use assertions should call this method instead of assert(). + // + public static void + FinalizerAssert(boolean b) + { + if(!b) + { + // + // Create a Throwable to obtain the stack trace. + // + Throwable t = new Throwable(); + StackTraceElement[] trace = t.getStackTrace(); + if(trace.length > 1) + { + // + // Skip the first frame, which represents this method. + // + System.err.println("Assertion failure:"); + for(int i = 1; i < trace.length; ++i) + { + System.err.println("\tat " + trace[i]); + } + } + else + { + System.err.println("Assertion failure (no stack trace information)"); + } + } + } +} |