Runtime.java (_exit): Declare new package-private native.

2001-03-12  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/Runtime.java (_exit): Declare new package-private native.
	* java/lang/natRuntime.cc (_exit): Implemented. Same as exit() but
	without a security manager check.
	(exit): Call _exit after security check.
	* prims.cc (JvRunMain): Call Runtime._exit to shutdown the runtime
	"naturally".
	* java/lang/System.java (setSecurityManager): If a security manager
	is already in place, call checkPermission.
	* java/lang/ThreadGroup.java (uncaughtException): If printStackTrace()
	throws an exception, try to deal with it gracefully.
	* java/lang/ExceptionInInitializerError.java (printStackTrace):
	Only try to print the subordinate stack trace if "exception" is set.
	Print our class name first.

From-SVN: r40401
This commit is contained in:
Bryce McKinlay 2001-03-12 07:40:17 +00:00 committed by Bryce McKinlay
parent 9612ab65bd
commit 456c0b60ad
7 changed files with 65 additions and 10 deletions

View file

@ -1,6 +1,6 @@
// ExceptionInInitializerError.java
/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
/* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation
This file is part of libgcj.
@ -38,7 +38,7 @@ public class ExceptionInInitializerError extends LinkageError
public ExceptionInInitializerError (Throwable e)
{
super ();
super (e.toString());
exception = e;
}
@ -49,17 +49,35 @@ public class ExceptionInInitializerError extends LinkageError
public void printStackTrace ()
{
exception.printStackTrace ();
if (exception != null)
{
System.err.print (this.getClass() + ": ");
exception.printStackTrace ();
}
else
super.printStackTrace ();
}
public void printStackTrace (PrintStream ps)
{
exception.printStackTrace (ps);
if (exception != null)
{
ps.print (this.getClass() + ": ");
exception.printStackTrace (ps);
}
else
super.printStackTrace (ps);
}
public void printStackTrace (PrintWriter pw)
{
exception.printStackTrace (pw);
if (exception != null)
{
pw.print (this.getClass() + ": ");
exception.printStackTrace (pw);
}
else
super.printStackTrace (pw);
}
// The exception that caused this error.