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

@ -511,7 +511,19 @@ public class ThreadGroup
{
if (thread != null)
System.out.print("Exception in thread \"" + thread.getName() + "\" ");
t.printStackTrace();
try
{
t.printStackTrace();
}
catch (Throwable x)
{
// This means that something is badly screwed up with the runtime,
// or perhaps someone is messing with the SecurityManager. In any
// case, try to deal with it gracefully.
System.out.println(t);
System.err.println("*** Got " + x.toString() +
" while trying to print stack trace");
}
had_uncaught_exception = true;
}
}