Maybe i'm being naive about Threads.

Rémi Forax forax at
Sat Nov 21 12:47:03 UTC 2009

Le 21/11/2009 07:48, Paulo Levi a écrit :
> But i'm wondering why there isn't a global jvm system option for the 
> new Thread(runnable).start() to perserve stack traces at least until 
> the start method.
> Seems like a no brainer so that tools (like the netbeans debugger) can 
> find where the misbehaving threads originate from, (instead of like 
> now, where i have to depend on the names). Or am i missing something 
> obvious?

You don't need the VM for that, something like that should work:

public class ThreadEx extends Thread {
   final Throwable where;
     where = new Throwable();
     setUncaughtExceptionHandler(new UncaughtExceptionHandler() {
       public void uncaughtException(Thread t, Throwable e) {
         setLastCause(e, where);

   static void setLastCause(Throwable t, Throwable where) {
     for(;;) {
       Throwable cause = t.getCause();
       if (cause == null)
       t = cause;


More information about the core-libs-dev mailing list