diff options
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..f53410a63de --- /dev/null +++ b/java/src/IceUtilInternal/Assert.java @@ -0,0 +1,45 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2007 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)"); + } + } + } +} |