diff -r c29568b733d2 -r 5e3b6f79d280 src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp --- a/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp Thu Jul 18 06:47:15 2013 -0400 +++ b/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp Wed Jul 17 13:48:15 2013 +0200 @@ -374,6 +374,10 @@ Thread* t = ThreadLocalStorage::get_thread_slow(); // slow & steady + // Must do this before SignalHandlerMark, if crash protection installed we will longjmp away + // (no destructors can be run) + os::WatcherThreadCrashProtection::check_crash_protection(sig, t); + SignalHandlerMark shm(t); if(sig == SIGPIPE || sig == SIGXFSZ) {